如何在异常捕获后关闭android应用程序

时间:2014-03-24 03:38:38

标签: java android multithreading

我正在设计一个Android应用程序,我想查看崩溃发生时的详细信息。所以我使用了Thread.UncaughtExceptionHandler()类。它会生成崩溃线程的详细信息,但一旦发生崩溃,应用程序就会被阻塞。我想在崩溃后立即关闭我的应用程序,但也想要详细介绍Thread。我在Activity类中包含以下代码。有什么建议吗?

Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {

            @Override
            public void uncaughtException(Thread thread, Throwable ex) {
                Log.e("UserApp", "uncaught_exception_handler: uncaught exception in thread " + thread.getName(), ex);


                if(ex instanceof RuntimeException)
                    throw (RuntimeException)ex;
                if(ex instanceof Error)
                    throw (Error)ex;


                Log.e("UserApp", "uncaught_exception handler: unable to rethrow checked exception");

            }

2 个答案:

答案 0 :(得分:4)

您可以在finish();区块中尝试exception

答案 1 :(得分:1)

试试这个......

你可以使用,

YourActivityname.this.finish();     or

android.os.Process.killProcess(android.os.myPid());

你应该使用第一个,因为这是一个最好的做法,就是调用finish()并让操作系统在需要的时候处理你的进程。

如果你使用second one,在事件处理过程中杀死你的进程,各种坏事 - 这是一种不好的做法。