在我的应用程序中,我以以下方式启动另一个应用程序(Eclipse项目)中的活动:
Intent intent = new Intent();
intent.setAction(game.getLaunch());
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivityForResult(intent, game.getId());
MySecondApplication.this.setResult(getGameId());
MySecondApplication.this.finish();
如果第二个应用程序正常终止,则此操作正常。但是我想在第二个应用程序中捕获任何未捕获的异常,并通知第一个应用程序第二个应用程序已经失败。因此,我尝试在第二个应用程序中使用UncaughtExceptionHandler:
Thread.setDefaultUncaughtExceptionHandler(handler);
@Override
public void uncaughtException(Thread thread, Throwable ex) {
System.out.println("Exception in my second application");
}
然而,我不能做更多的事情,比做一个系统。如果我尝试做一些更复杂的事情,比如警报对话框,或者以某种方式向第一个应用程序发出警报,所有这些都不会被调用。我认为这是因为第二个应用程序已经因为异常而终止。但我如何才能通知我的第一个申请,第二个已经意外终止?有什么提示吗?
在pentium10的帮助下,我可以通过在uncaughtheExceptionHandler中向第一个应用程序发送广播来通知第一个应用程序第二个已经崩溃。
在他所联系的问题中,没有必要做这个过程识别的东西。
然而,我的问题还没有完全解决:我可以通知我的第一个应用程序,但是发生异常的第二个应用程序并没有真正“终止”。它只是一个黑屏。那我怎么解决这个问题呢?
编辑#2:
我可以通过以下方式结束第二个活动:
((Activity) context).finish();