回復不能なエラーに達した場合にアプリケーションを停止するAndroidの通常の方法は何ですか。
finish()は、実行中のサービスまたはスレッドを停止しないため、これを実行しません。さらに、何が起こったのかをユーザーに知らせ、エラーログを送信してください。
私がグーグルで検索した限りでは、アプリケーションを閉じて特別なクラッシュレポートアクティビティなどを開いて、ユーザーに何が起こっているのかを示したり、クラッシュログを送信したりする方法はないようです。
未処理のランタイム例外をスローする必要があると思います。そのような場合、アンドロイドはすべてのプロセスを強制終了します。また、ACRAを使用することをお勧めします。このライブラリは、(電子メール、Google ドキュメントなどを介して) クラッシュ レポートを取得するのに役立ち、カスタマイズ可能なエラー ダイアログをユーザーに表示できます。
これをチェックする必要があります。これが解決策になる可能性があります。 アクラ
ライブラリの使用を開始するには、基本セットアップガイドを確認してください。ACRA - 基本設定
ACRA は適切なソリューションですが、未処理の例外の独自のログを実装する場合は、Thread.setDefaultUncaughtExceptionHandler()を試してください。そうすれば、スローされてキャッチされない例外を取得し、好きな方法でログに記録できます。Thread.UncaughtExceptionHandlerを実装して、そのメソッドに渡す必要があります。
アクティビティでは、onCreate() で次のようになります。
getMainLooper().getThread().setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());