一個Activity多個Handler時,Message是如何傳遞的(個人總結)
阿新 • • 發佈:2018-12-10
作者:海岸線-haianxian
來源:CSDN
原文:https://blog.csdn.net/u010680097/article/details/52142396
版權宣告:本文為博主原創文章,轉載請附上博文連結!
上面是作者的原文,看完後個人總結最重要的底層程式碼:
private boolean enqueueMessage(MessageQueue queue, Message msg, long uptimeMillis) { msg.target = this; if (mAsynchronous) { msg.setAsynchronous(true); } return queue.enqueueMessage(msg, uptimeMillis); } --------------------- 作者:海岸線-haianxian 來源:CSDN 原文:https://blog.csdn.net/u010680097/article/details/52142396 版權宣告:本文為博主原創文章,轉載請附上博文連結!
msg.target = this ,這一句是重點,當我們寫原始碼比如:
handler.sendEmptyMessage(8);
當執行msg.target後,就會使handler作為msg的target屬性的值,賦給msg資訊,然後將這條資訊放到訊息佇列中了,這樣就標識了handler和msg的關係