[英]Android hashmap clear onTrimMemory doesnot releases memory
[英]How to deal with Android memory management and onTrimMemory callback?
我有一個帶有許多實例屬性的自定義Application類,而活動依賴於此屬性。 有時,當活動在后台並且我打開應用程序時,會發生一些空指針異常。 我知道導致此問題的原因是Android正在殺死該應用程序。 當我打開應用程序時,將再次創建當前活動,但是現在Application屬性為null。
關於如何解決此問題,我有兩種選擇。 當級別為TRIM_MEMORY_MODERATE或更高級別時,兩種解決方案都需要onTrimMemory方法來清除應用程序緩存。
1º-清除緩存並打開應用程序時,如果必需的Application屬性為null,則當前活動完成。 僅主要活動將再次加載“應用程序”屬性。 這需要較少的工作,因為大多數重構將發生在主要活動中。
2º-每當Application屬性為null時,重構所有活動以從后端加載所有必需的數據。 我在這里有很多工作,因為所有活動都必須獨立並且必須知道如何加載自己的數據。
解決這種Android行為的最佳方法是什么? 您如何解決這個問題? 從自定義Application類清除緩存數據時,我需要做些什么來防止此空指針?
我對您的數據存儲庫體系結構了解不多,但是您應該遵循以下規則:
除了上述3個之外,我還建議您使用TRIM_MEMORY_UI_HIDDEN,這意味着您不再可見“活動”,並且可以釋放與UI相關的大型資源,尤其是保存在活動內部的位圖:)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.