5

回復不能なエラーに達した場合にアプリケーションを停止するAndroidの通常の方法は何ですか。

finish()は、実行中のサービスまたはスレッドを停止しないため、これを実行しません。さらに、何が起こったのかをユーザーに知らせ、エラーログを送信してください。

私がグーグルで検索した限りでは、アプリケーションを閉じて特別なクラッシュレポートアクティビティなどを開いて、ユーザーに何が起こっているのかを示したり、クラッシュログを送信したりする方法はないようです。

4

3 に答える 3

2

未処理のランタイム例外をスローする必要があると思います。そのような場合、アンドロイドはすべてのプロセスを強制終了します。また、ACRAを使用することをお勧めします。このライブラリは、(電子メール、Google ドキュメントなどを介して) クラッシュ レポートを取得するのに役立ち、カスタマイズ可能なエラー ダイアログをユーザーに表示できます。

于 2013-01-27T20:00:03.593 に答える
1

これをチェックする必要があります。これが解決策になる可能性があります。 アクラ

ライブラリの使用を開始するには、基本セットアップガイドを確認してください。ACRA - 基本設定

于 2013-01-27T20:00:05.187 に答える
1

ACRA は適切なソリューションですが、未処理の例外の独自のログを実装する場合は、Thread.setDefaultUncaughtExceptionHandler()を試してください。そうすれば、スローされてキャッチされない例外を取得し、好きな方法でログに記録できます。Thread.UncaughtExceptionHandlerを実装して、そのメソッドに渡す必要があります。

アクティビティでは、onCreate() で次のようになります。

getMainLooper().getThread().setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
于 2013-01-27T20:34:56.510 に答える