2016-02-11 68 views
0

我知道UncaughtExceptionHandler在MainThread上运行来处理所有未处理的异常。我试图将throwable和线程信息写入文件,但我只能在主线程上执行此操作。我担心这样做可能会在android上抛出ANR,因为IO操作相对耗时且昂贵的操作。Android - UncaughtExceptionHandler:完成执行的最长时间

主线程在执行未捕获的异常处理程序时可以等待的最大时间限制是多少?

回答

0

标准的ANR超时是5 seconds。如果超过该值,用户将获得ANR对话框。你应该能够在那个时候写一个小文件,但这不能保证。

如果您认为您的写入可能需要更长时间,请考虑将异常序列化到Bundle中并将其发送到在单独进程中运行的IntentService,以便它可以在不阻止主进程的主线程的情况下执行其工作。 (这工作正常,我已经完成了。)

+0

感谢您的回答。我有一天得出了同样的结论。谢谢 :) – Blanc