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