OnTrimMemoryの使用
1816 ワード
今日偶然にOnTrimMemoryのいくつかの知識を見て、そこで関連する知識を総括して、興味のある同志は少し見ることができます OnLowMemory OnLowMemoryはAndroidが提供するAPIであり、システムメモリが不足し、すべてのバックグラウンドプログラム(優先度backgroundのプロセス、バックグラウンドで実行されるプロセスではない)が殺された場合、システムはOnLowMemoryを呼び出す.システムが提供するコールバックは、Application/Activity/Fragementice/Service/ClontentProvider上記のシステムが提供するAPIのほか、ComponentCallbacksを独自に実現し、API登録することでOnLowMemoryコールバックを得ることができます.例えば、public static class MyCallback implements ComponentCallback{@Override public void onConfiguration Changed(コンフィギュレーションarg){} OnTrimMemory OnTrimMemoryはAndroid 4.0以降に提供されるAPIであり、システムは異なるメモリ状態に応じてコールバックする.システムが提供するコールバックは、Application/Activity/Fragement/service/ClontentProvider 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増加システムにもContext.registerComponentCallback()に登録すると、システムにコールバックされます.OnLowMemoryとOnTrimMemoryの比較1、OnLowMemoryがコールバックされた時、すでにバックグラウンドのプロセスがありません;onTrimMemoryがコールバックされると、バックグラウンドプロセスもあります.2,OnLowMemoryは最後のバックグラウンドプロセスが殺されたときに呼び出され、一般的にはlow memory killerがプロセスを殺した後にトリガーされる.一方、OnTrimMemoryのトリガは頻繁で、プロセスの優先度を計算するたびに、条件を満たす限りトリガされます.3,ワンタッチクリーンアップでOnLowMemoryはトリガーされずOnTrimMemoryは一度トリガーされます.
@Override
public void onLowMemory() {
//do release operation
}
}その後、Context.registerComponentCallbacks()は、適切なタイミングでコールバックを登録すればよい.このようなカスタマイズされた方法により、システムが提供するコンポーネントに限定されることなく、多くの場所でコールバックを登録することができる.