答案肯定是可以更新的,有时候我们回调或是一些其他情况导致UI不能再主线程调用而报错,这时候只要调用以下代码就可以解决,亲测好用哒! 如果你有更棒的方法请留言告诉我,谢谢!
解决办法 1:
new Thread(new Runnable(){
@Override
public void run() {
try {
Thread.sleep(3000); //时间随意定
runOnUiThread(new Runnable() {
@Override
public void run() {
//UI操作
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
解决办法 2:
private Handler handler = new Handler(Looper.getMainLooper());
private void toast(final String text) {
handler.post(new Runnable() {
@Override
public void run() {
//UI操作
Toast.makeText(MainActivity.this, text, Toast.LENGTH_LONG).show();
}
});
}
注:
更新UI必须在主线程中执行,不管是哪种方法都是将更新UI的消息发送给主线程的消息对象,让主线程去做处理。