2013-03-17 68 views
3

我有一個應用程序,加載一個活動A(包括ListFragment),從我加載活動B.如果我繼續在這兩個活動之間切換,我看到每次切換時,設備RAM都會增加10 MB。在三星設備上,我們可以使用任務管理器「清除內存」,這基本上清除了內存,但即使我這樣做,內存也不會被清除。即使我強制停止應用程序並再次清除內存,它也不會下去..最後在這兩個活動之間切換後,手機變慢,一旦內存已滿,我必須重新啓動設備。有趣的是,使用「dumpsys meminfo」進行檢查時,應用程序的內存不會超過14-15 mb。我沒有爲我的應用程序獲得OOM。 這種行爲觀察三星銀河標籤2 4.0,星系盛大,王牌二重奏。它在像Nexus 7或Galaxy Nexus這樣的Nexus設備上沒有被觀察到。 爲什麼RAM不斷上升,但應用程序內存不?這是因爲任何BITMAP泄漏?我嘗試使用MAT,但我剛開始使用它,所以可能需要一些時間來弄清楚如何識別泄漏。任何猜測?Android設備的內存使用量增加,但不是應用程序內存,直到設備被掛起

編輯 我在啓動兩個活動時都使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT標誌。

回答

3

當您切換活動,就應該設置標誌的使用意圖:

Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

這樣,如果該活動已經在棧上,將切換到它,而不是開始一個新的一。

+0

我忘了提及,但我已經使用該標誌..活動的多個實例不會創建 – 2013-03-17 18:15:23

相關問題