日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于内存清理

發布時間:2024/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于内存清理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. OnLowMemory
? ? ? OnLowMemory是Android提供的API,在系統內存不足,所有后臺程序(優先級為background的進程,不是指后臺運行的進程)都被殺死時,系統會調用OnLowMemory。系統提供的回調有:Application/Activity/Fragementice/Service/ContentProvider
除了上述系統提供的API,還可以自己實現ComponentCallbacks,通過API注冊,這樣也能得到OnLowMemory回調。例如:
public static class MyCallback implements ComponentCallbacks {?
? ? ? ? @Override
? ? ? ? public void onConfigurationChanged(Configuration arg) {?
? ? ? ? }
?
? ? ? ? @Override
? ? ? ? public void onLowMemory() {
? ? ? ? ? ? //do release operation
? ? ? ? }
? ? }
然后,通過Context.registerComponentCallbacks ()在合適的時候注冊回調就可以了。通過這種自定義的方法,可以在很多地方注冊回調,而不需要局限于系統提供的組件。
2. ?OnTrimMemory
? ? ? ?OnTrimMemory是Android 4.0之后提供的API,系統會根據不同的內存狀態來回調。系統提供的回調有:Application/Activity/Fragement/Service/ContentProvider
? 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()注冊后,就會被系統回調到。
OnLowMemory和OnTrimMemory的比較
1,OnLowMemory被回調時,已經沒有后臺進程;而onTrimMemory被回調時,還有后臺進程。
2,OnLowMemory是在最后一個后臺進程被殺時調用,一般情況是low memory killer 殺進程后觸發;而OnTrimMemory的觸發更頻繁,每次計算進程優先級時,只要滿足條件,都會觸發。
3,通過一鍵清理后,OnLowMemory不會被觸發,而OnTrimMemory會被觸發一次。 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的关于内存清理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。