次のものを区別することは可能ですか。
A. OS によって破棄された後、アクティビティが再作成されています。たとえば、デバイスで「アクティビティを保持しない」が有効になっていて、ユーザーがアプリをバックグラウンドに送信してから、再びフォアグラウンドに移動した場合。
B. アプリのクラッシュ後にアクティビティが再作成されている。
次のものを区別することは可能ですか。
A. OS によって破棄された後、アクティビティが再作成されています。たとえば、デバイスで「アクティビティを保持しない」が有効になっていて、ユーザーがアプリをバックグラウンドに送信してから、再びフォアグラウンドに移動した場合。
B. アプリのクラッシュ後にアクティビティが再作成されている。
そのような方法はないと思いますが、アクティビティがクラッシュしたときに onStop または OnDestroy が呼び出されるとは思いませんが、100% 確実ではありません。
そうでない場合は、onStop または onDestroy で共有設定を設定します。つまりshutdownCorrectly
、これを true に設定します。
次に、アクティビティが開いshutdownCorrectly
たら、共有設定で通常のコードが実行され、共有設定が false に設定されていることを確認します。確認時に共有設定が false の場合は、アプリがクラッシュしたことを意味するため、他のコードを実行できます。
お役に立てれば。
Thread.UncaughtExceptionHandlerというインターフェースが利用可能で、未処理の例外によるクラッシュを検出できます。
例:こちらをご覧ください