public class FinalActivity extends AppCompatActivity {
private TextView tvFinal;
private static Handler h;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_final);
findViewById(R.id.btn_next).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LogUtils.w("click............");
h.sendEmptyMessage(1);
}
});
tvFinal = findViewById(R.id.final_tv);
new Thread(new Runnable() {
@SuppressLint("HandlerLeak")
@Override
public void run() {
Looper.prepare();
h = new Handler(Looper.myLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String text = "改变了" + new Random().nextInt(1000);
LogUtils.w("text:" + text);
}
};
Looper.loop();
}
}).start();
}
@Override
protected void onDestroy() {
super.onDestroy();
LogUtils.w("destroy....");
if (h != null) {
h.removeCallbacksAndMessages(null);
}
}
}
代码是示例代码,但是简单明了,子线程更新 UI,就这样写就可以了。
本文提供了一个使用子线程更新Android应用UI的示例代码。通过创建一个Handler并将其与子线程关联,可以在主线程中发送消息,从而在子线程中更新UI元素。示例展示了如何在按钮点击事件中发送空消息,触发UI更新。
1万+

被折叠的 条评论
为什么被折叠?



