Android內存優化--onTrimMemory

一:OnTrimMemory簡介   

OnTrimMemory是Android 4.0之後提供的API,系統會根據不同的內存狀態來回調。根據不同的內存狀態,來響應不同的內存釋放策略。

二:需要釋放什麼資源?     

可以在資源緊張的時候,釋放UI 使用的資源:Bitmap、數組、控件資源等。

三:回調位置

      Application.onTrimMemory()

Activity.onTrimMemory()

Fragement.OnTrimMemory()
Service.onTrimMemory()
ContentProvider.OnTrimMemory()
OnTrimMemory的參數是一個int數值,代表不同的內存狀態:
TRIM_MEMORY_COMPLETE:內存不足,並且該進程在後臺進程列表最後一個,馬上就要被清理
TRIM_MEMORY_MODERATE:內存不足,並且該進程在後臺進程列表的中部。
TRIM_MEMORY_BACKGROUND:內存不足,並且該進程是後臺進程。
TRIM_MEMORY_UI_HIDDEN:內存不足,並且該進程的UI已經不可見了。 
以上4個是4.0增加

TRIM_MEMORY_RUNNING_CRITICAL:內存不足(後臺進程不足3個),並且該進程優先級比較高,需要清理內存

TRIM_MEMORY_RUNNING_LOW:內存不足(後臺進程不足5個),並且該進程優先級比較高,需要清理內存

TRIM_MEMORY_RUNNING_MODERATE:內存不足(後臺進程超過5個),並且該進程優先級比較高,需要清理內存 
以上3個是4.1增加
系統也提供了一個ComponentCallbacks2,通過Context.registerComponentCallbacks()註冊後,就會被系統回調到。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章