?
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
MessageQueue
譯者微博:http://t.qq.com/strongxu
版本:Android 3.1 r1
?
結(jié)構(gòu)
繼承關(guān)系
public class MessageQueue extends Object
????????
java.lang.Object
android.os.MessageQueue
?
類概述
保存消息列表的低級(jí)別類,這些消息由Looper對(duì)象派發(fā)。消息并不是直接添加到MessageQueue中的,而是通過與Looper對(duì)象關(guān)聯(lián)的MessageQueue.IdleHandler對(duì)象添加的。
???????? 調(diào)用Looper.myQueue方法可以獲取當(dāng)前線程的MessageQueue。
?
公共方法
public final void addIdleHandler (MessageQueue.IdleHandler handler)
向消息隊(duì)列中添加一個(gè)新的MessageQueue.IdleHandler。當(dāng)調(diào)用IdleHandler.queueIdle()返回false時(shí),此MessageQueue.IdleHandler會(huì)自動(dòng)的從消息隊(duì)列中移除?;蛘哒{(diào)用removeIdleHandler(MessageQueue.IdleHandler)也可以從消息隊(duì)列中移除MessageQueue.IdleHandler。
此方法是線程安全的。
???????? 參數(shù)
?????????????????? handler????????????? 要添加的IdleHandler。
?
public final void removeIdleHandler (MessageQueue.IdleHandler handler)
???????? 從隊(duì)列中移除之前調(diào)用addIdlehandler(MessageQueue.IdleHandler)添加的MessageQueue.IdleHandler。如果handler不在當(dāng)前的空閑列表,不做任何事。
?????????????????? 參數(shù)
??????????????????????????? handler????????????? 要移除的IdleHandler。
?
受保護(hù)方法
protected void finalize ()
???????? 在對(duì)象被VM回收之前調(diào)用。只有當(dāng)垃圾回收器檢測(cè)到運(yùn)行的所有線程都不再使用此對(duì)象時(shí)才會(huì)出現(xiàn)。
???????? 在對(duì)象被垃圾回收之前,此方法可以用來釋放系統(tǒng)資源或者做其他的清理工作。默認(rèn)的此方法實(shí)現(xiàn)是空的,這也是VM所期望的,但是子類可以重寫此方法。在此方法執(zhí)行是拋出的未捕獲異常會(huì)導(dǎo)致程序立即結(jié)束,否則則會(huì)忽略異常。
???????? 注意,VM會(huì)保證任何對(duì)象的finalize方法最多調(diào)用一次,但是它不會(huì)保證何時(shí)(或者是否)會(huì)調(diào)用finalize。例如,對(duì)象B的finalize方法可以推遲執(zhí)行對(duì)象A的finalize,因此它會(huì)導(dǎo)致推遲回收A的內(nèi)存空間。為了安全,使用ReferenceQueue,因?yàn)樵诶厥諘r(shí),它在VM處理引用的方式上提供了更多的控制方法。
?
補(bǔ)充
文章精選
android線程 Handler Message Queue AsyncTask線程模型
?????????????????? Android中的Handler, Looper, MessageQueue和Thread