12

[実行中のサービス] タブの停止ボタンを使用してサービスを停止すると、onDestroy() メソッドが呼び出されます

しかし、アプリケーションを強制停止すると、onDestroy() は呼び出されません。

これについての説明はありますか?

または、強制停止時に onDestroy() を起動するソリューションですか?

ありがとう!

4

4 に答える 4

5

あなたの強制がアプリを停止すると、まさにそれが起こります-それは強制停止です。警告もコールバックもありません。ただ停止しました。プロセス全体が強制終了され、実行中のコンポーネント(アクティビティ、サービスなど)には警告が表示されません。

呼び出される保証はまったくありませonDestroy()ん。アプリケーションクリティカルなコードをに移動しますonPause()。これは、ほとんどの状況で呼び出されます。

于 2012-12-16T18:57:23.683 に答える
2

ドキュメントから:

アクティビティが作成さonPause()れると、プロセスを強制終了する前に呼び出されることが保証されている最後のメソッドです...呼び出されない場合がありますonStop()onDestroy()したがって、を使用onPause()して重要な永続データ(ユーザー編集など)をストレージに書き込む必要があります。

この点を繰り返しますが、Force Stopは、優雅にアプリを終了することを意図したものではありません。アプリが終了するたびに実行する必要のある重要なコードがある場合は、で実行する必要がありますonPause()

于 2012-12-16T18:57:37.590 に答える