Android 在未捕获异常后尝试启动特定活动时应用程序挂起
我有以下代码来处理任何未捕获的异常,并从初始屏幕重新启动应用程序,因为我在初始屏幕中执行了大量初始化。这是我的启动屏幕 现在,我有了以下代码:Android 在未捕获异常后尝试启动特定活动时应用程序挂起,android,android-intent,exception-handling,uncaughtexceptionhandler,Android,Android Intent,Exception Handling,Uncaughtexceptionhandler,我有以下代码来处理任何未捕获的异常,并从初始屏幕重新启动应用程序,因为我在初始屏幕中执行了大量初始化。这是我的启动屏幕 现在,我有了以下代码: @Override public void uncaughtException(Thread thread, Throwable ex) { // restart Application Log.e("OSRAM Lightify", "LightifyApplication: UNCAUGHT EXCEPTION
@Override
public void uncaughtException(Thread thread, Throwable ex) {
// restart Application
Log.e("OSRAM Lightify", "LightifyApplication: UNCAUGHT EXCEPTION FOUND: \n" + ex.getStackTrace());
Intent reStartIntent = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
reStartIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(reStartIntent);
}
而是挂在星光大道上;屏幕变成空白
有人能帮我了解一下这里发生了什么吗?可能有很多原因造成这种情况-在这之后,你想重新开始,就像这样:
@Override
public void uncaughtException(final Thread thread, final Throwable ex) {
LOG.error("", ex);
installRestartIntent();
System.exit(2);
}
private void installRestartIntent() {
Intent rescueIntent = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
rescueIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
final PendingIntent pendingIntent = PendingIntent.getActivity(application,
0,
rescueIntent,
rescueIntent.getFlags());
final AlarmManager alarmManager = (AlarmManager) application.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, DateTime.now().plusSeconds(1).getMillis(), pendingIntent);
}
编辑:小心-某些崩溃可能会导致循环-您可能需要检查此项 我的崩溃是一个空指针异常,我的代码也有同样的问题。发生的是相同的异常在循环中被抛出。我如何处理它取决于堆栈跟踪