3

アプリケーションが強制終了、クラッシュ、または正常終了したかどうかを判断する必要があります。私の質問は次のとおりです。Android 環境でそのようなことをどのように行いますか。例外の処理は簡単です。Thread.setDefaultExceptionHandler を置き換えるだけです。難しいのは、強制終了を「通常」と区別するにはどうすればよいですか (バックプレス、ホームボタン + 長時間など)。

その理由は、ローカル データベースのコンテンツをサーバーに同期できるからです。そして、この操作を Main アクティビティの状態 1 でのみ許可し、状態 2 では許可しない十分な理由があります。ただし、ユーザーがプログラム内でデータベース関連のセマンティック エラーを見つけた場合、Main アクティビティの状態 2 で、その後、彼または彼女はそこに立ち往生することができます。

着信の中断やその他の構成の変更に備えるため、アプリケーションが状態 2 で動かなくなった場合、アプリを強制終了してから再度開いても、ユーザーはステージ 1 ではなくステージ 2 のままになります。

そのため、ユーザーが強制終了後にステージ 1 に戻り、データベースを同期できるようにする方法を残しておき、ユーザーの作業の大部分を保存できるようにします。

4

2 に答える 2

3

残念ながら仕方がありません。ユーザーまたはシステムが強制的にアプリケーションを停止すると、プロセス全体が強制終了されます。これが発生したことを知らせるコールバックはありません。EvenonDestroy()が呼び出される保証はありません。それはドキュメントに記載されています:"There are situations where the system will simply kill the activity's hosting process without calling this method (or any others) in it ..."

于 2013-07-17T13:09:56.557 に答える
0

おそらく、シャットダウン時に削除するファイルを起動時に書き込むことができます。アプリが起動し、このファイルが存在する場合、強制終了されたと結論付けることができます。

于 2013-07-17T13:09:41.243 に答える