我有一个Android应用程序,但有些行为我无法弄清楚。当我的应用崩溃时,它会自行重启,但是在活动onCreate()
中设置了属性的所有UI功能都将重置为其默认值。与此问题非常相似:
Android App Restarts upon Crash/force close
根据该问题的答案,我决定添加一个自定义uncaughtExceptionHandler
,该自定义会为我捕获异常。当捕获到异常时,我只想终止该进程并使用户重新开始。
@Override
public void uncaughtException(Thread thread, Throwable exception) {
StringWriter stackTrace = new StringWriter();
exception.printStackTrace(new PrintWriter(stackTrace));
System.err.println(stackTrace);// You can use LogCat too
String s = stackTrace.toString();
//you can use this String to know what caused the exception and in which Activity
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
上面是我的exceptionHandler的代码。
如预期的那样,捕获了异常并杀死了进程,但是随后应用程序重新启动并反复死掉。仅打印了一个堆栈跟踪。发生的事情很难描述,因此这是logcat输出的视频。在整个过程中,该应用程序仅显示空白屏幕。按下后退按钮没有任何作用。最后,我收到一条ANR消息,然后该应用程序再次重新启动(就像我一开始不希望它那样)
我的Logcat视频:https://youtu.be/Hwcrifhj5Zo