Android 如果出现未捕获的异常,如何退出我的应用程序?

Android 如果出现未捕获的异常,如何退出我的应用程序?,android,activity-finish,uncaught-exception,uncaughtexceptionhandler,Android,Activity Finish,Uncaught Exception,Uncaughtexceptionhandler,如果出现未捕获的异常,我想退出我的应用程序。为此,我使用System.exit10和Process.killprocess。我知道调用这些方法不是一个好的做法。我的代码如下: public class UncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler { String Tag; Context myContext; public UncaughtExceptionHa

如果出现未捕获的异常,我想退出我的应用程序。为此,我使用System.exit10和Process.killprocess。我知道调用这些方法不是一个好的做法。我的代码如下:

public class UncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
    String Tag;
    Context myContext;
    public UncaughtExceptionHandler(Context context, String TAG) {
        Tag = TAG;
        myContext = context;
    }  

    public void uncaughtException(Thread thread, Throwable exception) {
        StringWriter sw = new StringWriter();
        exception.printStackTrace(new PrintWriter(sw));
        Logger.appendErrorLog(sw.toString(), Tag);
        System.exit(10);
        Process.killProcess(Process.myPid());
    }
}
但这段代码的问题是,在调用exit方法后,我的应用程序再次重新启动。应用程序的活动启动。我不希望我的应用程序在出现异常时再次启动。为了解决这个问题,我尝试了另一种方法:

public class UncaughtExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler {
    String Tag;
    Context myContext;
    public UncaughtExceptionHandler(Context context, String TAG) {
        Tag = TAG;
        myContext = context;
    }  

    public void uncaughtException(Thread thread, Throwable exception) {
        StringWriter sw = new StringWriter();
        exception.printStackTrace(new PrintWriter(sw));
        Logger.appendErrorLog(sw.toString(), Tag);
        Intent intent = new Intent(myContext, HomeActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.putExtra("EXIT", true);
        myContext.startActivity(intent);
    }
}

在这之后,我在我的家庭活动中调用finish。运行完这段代码后,我的应用程序一点也没有退出,而且我的屏幕变成了黑屏


如何通过使用退出方法或完成所有活动来终止应用程序?

运行此代码后,我的应用程序根本没有退出,而且我得到了一个黑屏-当您使用Hierarchy View等工具确定此时屏幕上显示的是您的哪些活动时,你学到了什么?调用此方法,它将退出应用程序并完成;