因为子线程中不能更新主线程UI ,也不能在子线程中访问网络。
关于子线程中更新主线程UI 有以下方式 :
1. handler
主线程中处理消息 :
myHandler = new Handler(){
public void handleMessage(Message msg)
{
switch (msg.what) {
default:
tvShow.setText("" + msg.what);
}
super.handleMessage(msg);
}
};
子线程中发送消息 :
Message message = new Message();
message.what = response;
myHandler.sendMessage(message);
2. view 的post 方法创建Runnable() 添加到消息队列中
thread = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i <=1000; i++)
{
final int content = i ;
tvShow.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
tvShow.setText(""+content);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
3,AsyncTask 实现这个功能
略 ,以后用到在添加~