如何在Android中使用消息队列
1.为什么要使用消息队列
我们要把一些比较耗时的任务分配为一个线程完成,不然如果在UI线程内完成,过长时间完成不了则会出现问你等待还是关闭。用到线程就会带来一个问题,怎么进行子线程和主线程之间的通信。子线程把任务做完了怎么通知主线程,或者怎么把子线程完成的数据传回主线程。这就要使用消息队列。
2.怎么使用消息队列
(1)在UI线程中声明并实例化一个Handler类,自己重写里面的handleMessage(Message msg)方法,这个方法运行在主线程,可以对主线程的控件进行操作。
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(msg.what == 0){
tv_num.setText(msg.arg1+"");
}
}
};
这个方法中有个参数msg,意思就是当有消息发送时就调用这个方法。可以根据msg.what来选择处理的方式
(2)在子线程中用handler对象发送消息(handler.sendMessage(msg))
btn_count.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub