フレンド、アンドロイドにメモリが不足していないかどうかを確認するイベントや方法はありますか?
私のアンドロイドアプリケーションが低メモリで実行されているかどうかを知るために、アンドロイドに便利な方法がありますか?
実際には、私は多くのオブジェクトをキャッシュしていますので、メモリが少ない場合は、中央の場所や領域を解放することができます。
助けていただければ幸いです。
フレンド、アンドロイドにメモリが不足していないかどうかを確認するイベントや方法はありますか?
私のアンドロイドアプリケーションが低メモリで実行されているかどうかを知るために、アンドロイドに便利な方法がありますか?
実際には、私は多くのオブジェクトをキャッシュしていますので、メモリが少ない場合は、中央の場所や領域を解放することができます。
助けていただければ幸いです。
はい、onLowMemory()を参照してください。アクティビティなどがこれを実装しています。
編集:これは実際にはアプリケーションごとに間違っています。 Nik Reiman's answerを参照してください。
@bigstonesとは対照的に、onLowMemory()
は、あなたが期待しているとおりのものではありません。この呼び出しの私の理解は、システムのメモリが不足していて、余分なメモリを解放するようアプリケーションに要求したときにのみ呼び出されるということです。 onLowMemory()
は、システムに十分なメモリがあるにもかかわらず、アプリケーションがメモリ制限に達したときに呼び出されることはありません。
OutOfMemory例外を試してみるのも悪い考えです。自分のアプリのメモリ使用量を知りたい場合は、ActivityManager class、つまりgetMemoryClass()
とgetProcessMemoryInfo()
の方法を使用するのが最も良い方法です。
また、プロセスメモリの使用方法については、より詳細に説明しているthis SO answer(Androidエンジニア)もお読みください。
OnLowMemory()はシステムのメモリが不足しているときにのみ呼び出され、イメージをデコードする前に次のメソッドを実装して使用可能なメモリをチェックできます。
Runtime.getRuntime().maxMemory();
Runtime.getRuntime().totalMemory();
Runtime.getRuntime().freeMemory();
私はあなたの受け入れられた答えを変更する必要があります、私の実際には間違っています - アプリケーションに賢明です。 – bigstones