0

グローバルに使用するために Application クラスにいくつかのオブジェクトを保存するアプリケーションがあります。Application クラスを強制終了させたくないので (そこに保存されている情報が必要なため)、onLowMemory()関数をオーバーライドしてThread.sleep(1000)

メモリがまだ少ない場合、Application クラスが起動するとどうなりますか? onLowMemory() を再度呼び出しますか?

アプリケーションとそのバックグラウンド サービスが実行されている限り、この Application クラスがシステムによって強制終了されないようにするための適切なアーキテクチャは何ですか?

4

2 に答える 2

2

そうしないでください!

  1. システムコールをブロックしない
  2. システムがアプリを強制終了するのを妨げない
  3. メモリはまだ少ないでしょう

アプリが強制終了されないようにする方法はありません。必要に応じて共有設定、ファイル、または sqlite db のいずれかにデータを保存しますが、アプリケーション インスタンスに依存しないでください。

于 2012-09-24T15:37:39.840 に答える
0

呼び出されたときにその関数を信頼するべきではありません。Android は、アプリケーションがバックグラウンドにある限り、いつでもアプリケーションを強制終了できます。実際にアプリケーションを停止したり、停止しようとしたりすることはできません。その関数を呼び出して、アプリケーションが一部のキャッシュをクリアしたり、メモリを解放するためにできることを実行したりできるようにする場合があります。それはドキュメントから結論付けることができます。

http://developer.android.com/reference/android/app/Application.html#onLowMemory ()

それに頼らないようにしてください。確実に呼び出されるOnPauseOnStopまたは同様のメソッドをオンにするためにアプリケーションを準備するためにできることは何でもしてください。onDestroyこれは、ファイルやデータベースにとって重要な変数、データ、またはその他のものを保存することを意味します。

于 2012-09-24T15:41:06.927 に答える