handler android中的异步,多线程方法 ——总结
一般情况我们的使用方法就是这样了
1) looper: 一个线程可以产生一个looper对象,由它来管理此线程里的message queue(消息队列)
2) handler: 你可以构造一个handler对象来与looper沟通,以便push新消息到messagequeue里;或者接收looper(从messagequeue里取出)所送来的消息。
private Handler handler = new Handler()){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
Toast.makeText(MainActivity.this, "获取数据失败", 0).show();
break;
case 2:
Toast.makeText(MainActivity.this, "获取数据失败", 0).show();
break;
}
};
private Runnable myRunnable= new Runnable() {
public void run() {
if (run) {
handler.postDelayed(this, 1000);
count++;
}
tvCounter.setText("Count: " + count);
handler.sendEmptyMessage(1);
}
};
- 当然我们还有其他的办法
采用runOnUiThread(new Runnable()),这要实现Runnable借口,我们可以直接在这个线程中进行UI的更新。是api提供的方法,较为便捷。
private Runnable myRunnable= new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, result, 0).show();
}
});
}
};