Andoird是不允许直接在子线程中更新UI的。原因是子线程中更新UI会引起线程不安全问题,导致界面卡顿掉帧。
需要通过handler.post将子线程的任务发送到UI线程进行处理。
下面介绍几种子线程更新UI的方法
方式一:Handler和Message
常规使用方法
方式二:在子线程中调用view.post
myView.post(new Runnable() { @Override public void run() { // 更新UI myView.setText(“更新UI”); }});
方式三:在子线程中调用runOnUIThread
在子线程中直接调用Activity.runOnUiThread(Runnable action)方法
runOnUiThread(new Runnable() { @Override public void run() { // 更新UI的操作 } });
方式四:Handler.post()方法
追踪源码发现,这几种方法也是通过Handler+Message来实现的。一般简单的更新UI推荐使用方法二和方法三
标签:在子,更新,Handler,线程,Andriod,UI,post From: https://www.cnblogs.com/suiyilaile/p/16873650.html