Android 如果出现未捕获的异常,如何退出我的应用程序?
如果出现未捕获的异常,我想退出我的应用程序。为此,我使用System.exit10和Process.killprocess。我知道调用这些方法不是一个好的做法。我的代码如下: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
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等工具确定此时屏幕上显示的是您的哪些活动时,你学到了什么?调用此方法,它将退出应用程序并完成;