如果有未捕获的异常,我想退出我的应用程序。为此,我正在使用System.exit(10)
and 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 方法后,我的应用程序再次重新启动(应用程序的 Home 活动开始)。一旦出现异常,我不希望我的应用程序重新启动。为了解决这个问题,我尝试了另一种方法:
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);
}
}
在此之后,我在我的HomeActivity
. 运行此代码后,我的应用程序根本没有退出,并且出现黑屏
如何通过使用退出方法或完成所有活动来终止应用程序?