[実行中のサービス] タブの停止ボタンを使用してサービスを停止すると、onDestroy() メソッドが呼び出されます。
しかし、アプリケーションを強制停止すると、onDestroy() は呼び出されません。
これについての説明はありますか?
または、強制停止時に onDestroy() を起動するソリューションですか?
ありがとう!
[実行中のサービス] タブの停止ボタンを使用してサービスを停止すると、onDestroy() メソッドが呼び出されます。
しかし、アプリケーションを強制停止すると、onDestroy() は呼び出されません。
これについての説明はありますか?
または、強制停止時に onDestroy() を起動するソリューションですか?
ありがとう!
あなたの強制がアプリを停止すると、まさにそれが起こります-それは強制停止です。警告もコールバックもありません。ただ停止しました。プロセス全体が強制終了され、実行中のコンポーネント(アクティビティ、サービスなど)には警告が表示されません。
呼び出される保証はまったくありませonDestroy()
ん。アプリケーションクリティカルなコードをに移動しますonPause()
。これは、ほとんどの状況で呼び出されます。
ドキュメントから:
アクティビティが作成さ
onPause()
れると、プロセスを強制終了する前に呼び出されることが保証されている最後のメソッドです...呼び出されない場合がありますonStop()
。onDestroy()
したがって、を使用onPause()
して重要な永続データ(ユーザー編集など)をストレージに書き込む必要があります。
この点を繰り返しますが、Force Stopは、優雅にアプリを終了することを意図したものではありません。アプリが終了するたびに実行する必要のある重要なコードがある場合は、で実行する必要がありますonPause()
。