我希望在出现未捕获的异常时从我的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}
我尝试从新线程启动子活动,因为我认为当前线程可能处于不允许启动新活动的状态,但这也不起作用。
所以有人知道这可行吗? 在处于此错误状态时,如何阻止当前活动阻止所有内容?是设置处理异常的任何方法吗?
答案 0 :(得分:5)
您需要做的是在清单文件中指定例外显示Activity
,并将android:taskAffinity
和android:process
设置为与您的主流程不同的值。然后,您需要指定intent filter并使用它来启动活动并传递数据。
默认情况下,taskAffinity是从主<application>
标记继承的,与<manifest>
标记中设置的页面名称相同。你可能想要android:taskAffinity="org.example.package.TASK.ExceptionDisplay"
默认情况下,一个<application>
标记中的所有内容都在同一进程中运行。您可以使用android:process
属性更改它,您可能想要android:process=":exception_process"
之类的内容。
有关详细信息,请查看此documentation。