安卓在子线程中更新UI
安卓不允许直接在子线程中进行UI操作的
public class AddActivity extends AppCompatActivity implements View.OnClickListener{
private TextView text;
public static final int UPDATE_TEXT = 1;
public static final int SET_TEXT = 1;
private Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
switch (msg.what){
case SET_TEXT:
//需要进行的UI操作
......
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
text = findViewById(R.id.text);
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
@Override
public void run() {
//现在子线程进行一些耗时的操作
......
Message message = new Message();
message.what = SET_TEXT;
handler.sendMessage(message); //这个方法会转到主线程中进行
}
});
}
});
}
}