在uncaughtException()调用上启动活动

Sim*_*mon 4 android exception-handling exception android-intent android-activity

我希望在UncaughtExceptionHandler出现未捕获的异常时从我的新活动开始.这可能吗?

我认为当前的活动无法在"错误"状态下启动新的子活动,因为我总是遇到这样的错误:

07-14 14:34:06.075: INFO/ActivityManager(74): Starting activity: Intent { flg=0x10000000 cmp=de.rwth/system.ErrorHandler (has extras) }
07-14 14:34:06.615: WARN/ActivityManager(74): Activity pause timeout for HistoryRecord{4338f8d8 de.rwth/.main}
07-14 14:34:16.115: WARN/ActivityManager(74): Launch timeout has expired, giving up wake lock!
07-14 14:34:16.628: WARN/ActivityManager(74): Activity idle timeout for HistoryRecord{433a89d8 de.rwth/system.ErrorHandler}
Run Code Online (Sandbox Code Playgroud)

我试图从一个新线程启动子活动,因为我认为当前线程可能处于不允许启动新活动的状态,但这也不起作用.

那么有谁知道这可行吗?在处于此错误状态时,如何阻止当前活动阻止所有内容?是设置异常处理的任何方法吗?

Ric*_*ler 5

您需要做的是Activity在清单文件中指定异常显示,并设置android:taskAffinityandroid:process主进程不同的值.然后,您需要指定一个intent过滤器并使用它来启动活动并传递数据.

默认情况下,taskAffinity从主<application>标记继承,并且与<manifest>标记中设置的页面名称相同.你可能想要这样的东西android:taskAffinity="org.example.package.TASK.ExceptionDisplay"

默认情况下,一个<application>标记中的所有内容都在同一进程中运 您可以使用android:process您可能想要的属性来更改它android:process=":exception_process".

有关更多详细信息,请查看此文档.