關於ComponentCallback2
- 是一個細粒度的內存回收管理回調。
- Application、Activity、Service、ContentProvider、Fragment實現了ComponentCallback2接口
- 開發者應該實現onTrimMemory(int)方法,細粒度release 內存,參數可以體現不同程度的內存可用情況
- 響應onTrimMemory回調:開發者的app會直接受益,有利於用戶體驗,系統更有可能讓app存活的更持久。
- 不響應onTrimMemory回調:系統更有可能kill 進程
onTrimMemory參數的意義
-
當開發者的app正在運行
-
1)Trim_memory_running_moderate:設備開始運行緩慢,當前app正在運行,不會被kill
2)Trim_memory_running_low:設備運行更緩慢了,當前app正在運行,不會被kill。但是請回收unused資源,以便提升系統的性能。
3)Trim_memory_running_critical:設備運行特別慢,當前app還不會被殺死,但是如果此app沒有釋放資源,系統將會kill後臺進程
-
當開發者的app's visibility 改變
- Trim_memory_ui_hidden:當前app UI不再可見,這是一個回收大個資源的好時機,
-
當開發者的應用進程被置於background LRU list
- trim_memory_background:系統運行慢,並且進程位於LRU list的上端。儘管app不處於高風險被kill。當前app應該釋放那些容易恢復的資源
- trim_memory_moderate:系統運行緩慢,當前進程已經位於LRU list的中部,如果系統進一步變慢,便會有被kill的可能
- trim_memory_complete:系統運行慢,當前進程是第一批將被系統kill的進程。此app應該釋放一切可以釋放的資源。低於api 14的,用戶可以使用onLowMemory回調。
---------------------
作者:time_hunter
來源:CSDN
原文:https://blog.csdn.net/time_hunter/article/details/53107191
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!