Handler機制4個關鍵對象:
1、Message:Message是在線程之間傳遞的信息,用于不同線程之間交換數據。常用的兩個字段:what用于攜帶整形數據;obj用來攜帶一個Object對象。
2、Handler:用于發送和處理信息。Handler對象常用方法:sendMessage()用于發送消息,發出的消息最終傳遞到handlerMessage()方法中。
3、MessageQueue(消息隊列):存放通過Handler發送的消息,等待處理。一個線程中只有一個MessageQueue對象。
4、Looper:MessageQueue的管家,調用Looper的loop()方法后,就會進入一個無限循環中,然后每當發現MessageQueue中存在一條消息,就會將其取出,傳遞到Handler的handlerMessage()方法中。每個線程只會有一個Looper對象,在主線程創建Handler對象時,系統自動創建Looper對象,故不需要手動創建其對象,而子線程中的Handler對象,需要調用Looper.loop()方法開啟消息循環。