android 只有主线程能更新UI
如果新建一个Thread,那么不能在这个Thread中直接更新UI,因为只有主线程才能更新UI。
解决的办法如下:
1, 在Activity中声明一个Handller变量,重写HandleMessage(Message msg)函数,在函数内更新UI
1 Handler handler= new Handler(){ 2 @Override 3 public void handleMessage(Message msg){ 4 TextView myTextView=(TextView )findViewById(R.id.MyTextView); 5 myTextView.setText("Button Pressed"); 6 } 7 };
2,在新建的Thread线程中,handler.sendEmptyMessage(0); 这样会回调 handler的handleMessage函数
Runnable runnable= new Runnable() { public void run() { long endTime=System.currentTimeMillis()+20*1000; while (System.currentTimeMillis()<endTime) { synchronized (this) { try { wait(endTime - System.currentTimeMillis()); } catch (Exception e) { } } handler.sendEmptyMessage(0); } } } ; Thread thread=new Thread(runnable); thread.start();
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。