0

独自の Application クラスを作成しました。

デバッグしようとすると、コードは Application.onCreate() で停止しますが、onLowMemory では停止しません。

シナリオをテストするために、他の多くの高メモリ アプリケーションを開きます。

私が見ているのは、デバッグ セッションが (Eclipse で) 終了し、静的変数の一部が null になったことです。これは、プロセスが終了したことを示しています。

デバッグがメソッドのブレークポイントで停止しなかっただけでなく、Log.e(...) 行を配置しましたが、それも表示されません。

メソッドが呼び出されなかった理由について何か考えはありますか?

ありがとう。

4

1 に答える 1

3

このメソッドが呼び出されるという保証はないと思います。

ドキュメントから:

これが呼び出される正確なポイントは定義されていませんが、通常、すべてのバックグラウンドプロセスが強制終了された頃、つまり、サービスとフォアグラウンドUIをホストしているプロセスを強制終了するポイントに到達する前に発生します。

呼び出されるポイントが定義されていないため、呼び出さないことを選択できます。

一般に、Androidは、バックグラウンドにある限り、いつでもアプリケーションを自由に強制終了できます。必要なクリーンアップを実行するために呼び出されることが保証されていることを具体的に示すライフサイクル内のメソッド(onPause、onStop、onDestroyなど)のみに依存する必要があります。

于 2011-03-16T19:10:35.930 に答える