6

Settings->Application->ManageApplications -> --> Force Stop の手順に従ってアプリが強制停止された場合、android は Activity または Application の onDestroy を呼び出しますか? (そうでない場合、ユーザーによってトリガーされた強制停止が原因でアプリケーションが終了したかどうかを知る方法はありますか)。

4

3 に答える 3

10

アプリを強制的に停止すると、プロセス全体が強制終了されます(つまり、Process.killProcess(int pid))。アプリケーションに関連付けられているすべてのリソースは、カーネルによって削除および解放されます。したがって、このアクションを傍受する方法はありません。

アプリケーションを市場にリリースすると、開発者コンソールは、強制終了、クラッシュなどに関する統計を提供します(それがあなたが求めている理由である場合)。

于 2012-06-22T17:39:46.667 に答える
3

要するに、いいえ、onDestroy()呼び出されず、これを行うことはできません。Android はサポートしていません。

より拡張された答え...

onDestroy()このシナリオでは呼び出されないようです。Toastsuper.onDestroy を呼び出す前にこれを取得しようとしてこれをテストしましたが、Toastメッセージは表示されませんでした。(そして、この投稿によると、onDestroy()は本当に信頼性が低く、携帯電話では頻繁に呼び出されることはありませんが、エミュレーターでは呼び出される可能性があるため、注意してください)。代わりkillProcess()に呼び出され、それをインターセプトすることはできません。

さらに、この投稿で受け入れられた回答によると、ユーザー制御の強制停止の後、タスクをキャッチして実行することさえできないようです。

于 2012-06-22T17:30:05.393 に答える
0

いいえ、これは実際には不可能です。問題のAndroidコードは調べていませんが、「強制停止」はkillアプリのプロセスIDを呼び出しているだけだと思います。したがって、それを傍受できる唯一の方法は、信号をトラップできる場合です。これは、Androidでは許可されていないと思います。

あなたが根付いていれば、おそらくこれを行うことができますが、標準的な方法ではできません。

于 2012-06-22T17:39:16.053 に答える