Android Handler

by on under jekyll
1 minute read
Handler负责发送消息,Looper负责接收Handler发送的消息,并直接把消息回传给Handler自己,MessageQueue是一个存储消息的容器。

用法一:

private Handler handler=new Handler();
.......
 handler.post(new Runnable() {
            @Override
            public void run() {
                textView.setText("Update");
            }
        }); 

用法二:

private Handler handler=new Handler(){
        public void handleMessage(Message msg){
          textView.setText(""+msg.arg1);
        }
    };
........
Message message=handler.obtainMessage(); //Message message=new Message();
message.arg1=1;
handler.sendMessage(message);  //message.sendToTarget()

用法三:

private Handler handler = new Handler()
private MyRunnable myRunnable=new MyRunnable();
class MyRunnable implements Runnable{
   @Override
    public void run() {
       handler.postDelayed(myRunnable,1000);
    }
}
........
handler.postDelayed(myRunnable,1000);

handler.removeCallbacks(myRunnable); //移除消息

用法四:

 private Handler handler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message msg) {
            return false; // return true 消息被截获
        }
    }){
    @Override
    public void handleMessage(Message msg) {
    }
    };
更新...
Android