美文网首页
Handler的sendMessage和postDelay的区别

Handler的sendMessage和postDelay的区别

作者: 挖打发 | 来源:发表于2021-04-24 22:50 被阅读0次

1 两者在内部都是调用了sendMessageDelayed方法实现的, handler.post和handler.sendMessage本质上是没有区别的,都是发送一个消息到消息队列中,而且消息队列和handler都是依赖于同一个线程的。

2 sendMessage接口的参数是message, 而post接口的参数是一个Runnable

(1) sendMessage/sendMessageDelayed

Message msg = new Message();

msg.what = "id";

msg.obj = obj;

mHandler.sendMessage(msg);

Handler handler = new Handler () {

 @Override

  public void handleMessage(Message msg) {

   if (msg.what == MSG_ID) {

   swipeLayout.setRefreshing(false);

   }

 }

}

(2) post/postDelayed

new Handler().postDelayed(new Runnable() {

    @Override

     public void run() {

      // do something....

     }

}, 100);

相关文章

网友评论

      本文标题:Handler的sendMessage和postDelay的区别

      本文链接:https://www.haomeiwen.com/subject/smfblltx.html