代码之家  ›  专栏  ›  技术社区  ›  Simon

在未捕获的exception()调用上启动活动

  •  3
  • Simon  · 技术社区  · 14 年前

    我想从我的 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}
    

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

    有人知道这是怎么回事吗? 如何防止当前活动在此错误状态下阻塞所有内容?是否有任何方法可以将异常设置为已处理?

    1 回复  |  直到 14 年前
        1
  •  5
  •   Rich Schuler    14 年前

    您需要做的是指定异常显示 Activity 在清单文件中设置 android:taskAffinity android:process 不同于主要流程的价值观。然后您需要指定 intent filter 并使用它来启动活动并传递数据。

    默认情况下,任务关联是从主 <application> 标记和是在 <manifest> 标签。你可能想要类似的东西 android:taskAffinity="org.example.package.TASK.ExceptionDisplay"

    默认情况下,所有内容都在一个 <应用程序; 标记在同一进程中运行。你可以用 Android:进程 属性你可能想要 android:process=":exception_process" .

    看看这个 documentation 了解更多详细信息。