android handler弱引用,防止記憶體洩露

2021-07-02 14:12:44 字數 496 閱讀 7841

當工程中用到很多handler時,為防止記憶體洩露,使用弱引用

static class myhandler extends handler 

@override

public void handlemessage(message msg) }}

}

使用時:

private myhandler handler=new myhandler(this);

weakreference弱引用,與強引用(即我們常說的引用)相對,它的特點是,gc在**時會忽略掉弱引用,即就算有弱引用指向某物件,但只要該物件沒有被強引用指向(實際上多數時候還要求沒有軟引用,但此處軟引用的概念可以忽略),該物件就會在被gc檢查到時**掉。對於上面的**,使用者在關閉activity之後,就算後台執行緒還沒結束,但由於僅有一條來自handler的弱引用指向activity,所以gc仍然會在檢查的時候把activity**掉。這樣,記憶體洩露的問題就不會出現了。

Android Handler訊息機制

handler訊息機制 優點 寫法 1.主線程中建立乙個handler物件 handler handler new handler 2.複寫handler物件的handlermessage方法 public void handlemessage android.os.message msg 3.在子...

Android Handler 工作原理

handler message messagequeue looper 1.looper.prepare public static void prepare private static void prepare boolean quitallowed 這裡建立的looper sthreadloc...

Android Handler相關問題

1 handler是什麼?答 handler是更新ui介面的機制,也是訊息處理的機制,我們可以傳送訊息,也可以處理訊息 2 為什麼要有handler?答 android在設計的時候,封裝了一套訊息建立 傳遞 處理機制,如果不遵循這樣的機制就沒辦法更新ui資訊,就會丟擲異常。3 handler怎麼用?...