gpt4 book ai didi

android - 是否无法在UncaughtExceptionHandler中启动一个Activity

转载 作者:行者123 更新时间:2023-11-29 00:10:49 25 4
gpt4 key购买 nike

我发现在 UncaughtExceptionHandler 中启动新 Activity 时它不起作用。我的意思是不显示烦人的 Android 崩溃对话框。另一方面,我想开始一个新的 Activity 来向用户表明我们遇到了一个严重的错误,你是想退出还是继续使用这个应用程序,但仍有可能发生一些奇怪的事情。

我什至尝试通过

在 UncaughtExceptionHandler 中重启应用程序
final Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName());  
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

但是,我又倒霉了。它也不起作用......

最佳答案

我尝试在崩溃发生后重新启动我的应用程序。我在您的应用程序扩展类中捕获了所有未捕获的异常。在异常处理程序中做一些关于异常的事情并尝试设置 AlarmManager 以重新启动我的应用程序。这是我如何在我的应用程序中执行此操作的示例,但我只将异常记录到数据库。

public class MyApplication extends Application {
// uncaught exception handler variable
private UncaughtExceptionHandler defaultUEH;

// handler listener
private Thread.UncaughtExceptionHandler _unCaughtExceptionHandler =
new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable ex) {

// here I do logging of exception to a db
PendingIntent myActivity = PendingIntent.getActivity(getContext(),
192837, new Intent(getContext(), MyActivity.class),
PendingIntent.FLAG_ONE_SHOT);

AlarmManager alarmManager;
alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
15000, myActivity );
System.exit(2);

// re-throw critical exception further to the os (important)
defaultUEH.uncaughtException(thread, ex);
}
};

public MyApplication() {
defaultUEH = Thread.getDefaultUncaughtExceptionHandler();

// setup handler for uncaught exception
Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);
}
}

关于android - 是否无法在UncaughtExceptionHandler中启动一个Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30255905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com