在没有上下文的情况下开始活动

时间:2018-07-27 18:57:34

标签: android

我在自己的android应用程序中使用了自定义异常处理程序,因此只要该应用程序崩溃,就会调用其覆盖的方法uncaughtException(Thread t, Throwable e)。在这种方法中,我要启动一个活动,提示用户将错误日志发送给开发人员。

但是问题是,我没有任何上下文来开始活动。我还尝试将先前活动的上下文传递给该方法,但是由于崩溃后应用程序停止运行,该上下文也消失了,因此无法使用该活动启动该活动。

这是我的应用程序类的onCreate方法

@Override
    public void onCreate() {
        super.onCreate();

        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread t, Throwable e) {
                Intent i = new Intent(QuickTatkalApp.this, HomeActivity.class);
                startActivity(i);
            }
        });
    }

此后我得到的是每当应用程序崩溃时,应用程序中只会显示空白的空白屏幕。

1 个答案:

答案 0 :(得分:1)

尝试创建一个从Application扩展的类,如下所示

public final class MyAppApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread thread, Throwable throwable) {
                //start your activity here with Application#packageContext
                //just calling "this"
            }
        });
    }
}