在uncaughtException上重新启动Activity

时间:2015-03-03 10:11:30

标签: java android uncaught-exception

在活动的onCreate方法中,我运行了这个:

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread thread, Throwable ex) {
                Intent intent = getIntent();
                finish();
                startActivity(intent);
            }
        });

我想要做的是,在这个活动中,我想重新启动它并清除以前的意图,使用这些代码行,我最终得到一个空白屏幕并且应用程序在后台运行,无论哪种方式我必须重新启动它或从多任务处理屏幕中删除它,这不是真正用户友好。有任何想法吗?谢谢!

编辑:是否也可以在此处构建警告对话框并显示一些消息?也许在OK按下,重定向将发生

1 个答案:

答案 0 :(得分:0)

为了将来的参考,这对我有用:

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
            @Override
            public void uncaughtException(Thread thread, Throwable ex) {

                Intent crashedIntent = new Intent(MainDrawer.this, MainDrawer.class);
                crashedIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                crashedIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(crashedIntent);

                System.exit(0);
            }
        });