UncaughtExceptionHandler が MainThread で実行され、すべての未処理の例外を処理することを理解しています。スロー可能な情報とスレッド情報をファイルに書き込もうとしていますが、これはメインスレッドでのみ行う必要があります。IO操作は比較的時間がかかり、高価な操作であるため、そうすることでAndroidでANRがスローされる可能性があることを懸念しています。
キャッチされていない例外ハンドラの実行中にメインスレッドが待機できる最大時間制限は?
UncaughtExceptionHandler が MainThread で実行され、すべての未処理の例外を処理することを理解しています。スロー可能な情報とスレッド情報をファイルに書き込もうとしていますが、これはメインスレッドでのみ行う必要があります。IO操作は比較的時間がかかり、高価な操作であるため、そうすることでAndroidでANRがスローされる可能性があることを懸念しています。
キャッチされていない例外ハンドラの実行中にメインスレッドが待機できる最大時間制限は?
標準の ANR タイムアウトは5 秒です。それを超えると、ユーザーは ANR ダイアログを受け取ります。その時間で小さなファイルを書き込めるはずですが、保証するものではありません。
書き込みに時間がかかると思われる場合は、例外をバンドルにシリアル化し、別のプロセスで実行される IntentService に送信して、メイン プロセスのメイン スレッドをブロックせずに処理できるようにすることを検討してください。(これはうまくいきます、私はそれをしました。)