編輯:關於Android編程
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會被觸發一次。
隨著Android設備增多,不少網站都開始設備Android設備,而Android主流設備類型以手機和平板為主。網站在適配時通過User Agent(用戶代理,以下簡稱U
一、Android Studio 主題的設置1.1 設置Android Studio 自帶的主題及包名字體大小1.2 導入第三方主題:下載了第三方的主題,然後執行:Fil
上篇博客已經實現了地圖的定位以及結合了方向傳感器用戶路癡定位方向,如果你還不清楚,請查看:Android 百度地圖 SDK v3.0.0 (二) 定位與結合
這篇隨筆將會簡單的記錄下ImageView這個控件的一些使用方法,以及其最重要的一個屬性: scaleTypeImageView這個控件是用來顯示圖片用的,例如我們可以通