Android:如何从应用程序中设置的UncaughtExceptionHandler启动活动

时间:2011-07-03 10:15:52

标签: android android-activity android-intent uncaught-exception

  

可能重复:
  How to start activity from UncaughtExceptionHandler if this is main thread crashed?

我的目标是在我的Android程序崩溃时显示一些错误消息。

我在我的程序的应用程序(MyApplication)onCreate中注册了一个未捕获的异常处理程序:

Thread.setDefaultUncaughtExceptionHandler(new HelloUncaughtExceptionHandler());

当发现异常时,我想为用户启动一个新活动来保存/提交错误。这就是我目前正在做的事情:

class HelloUncaughtExceptionHandler implements UncaughtExceptionHandler {
    @Override
    public void uncaughtException(Thread thread, Throwable e) {
        final Writer result = new StringWriter();
        final PrintWriter printWriter = new PrintWriter(result);
        e.printStackTrace(printWriter);
        String stacktrace = result.toString();
        printWriter.close();

        Intent intent = new Intent(MyApplication.this,
                BugReportActivity.class);
        intent.putExtra("stacktrace", stacktrace);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
}

我收到一个没有BugReportActivity的空白屏幕(如果我从一个活动开始它工作正常)。 “MyApplication.this”让我担心......是否真的无法从我的应用程序中启动任意活动?

谢谢大家。

0 个答案:

没有答案