如果触发未捕获的异常导致应用程序退出,我对自动重启基于 android 的应用程序的选项有疑问。我实现这个请求的想法如下,
在 MainLauncher 的 OnCreate 函数中创建一个 PendingIntent。在这种情况下,这个 PendingIntent 是否会指向一个 BroadCastReceiver,然后它可以触发 MainLauncher Activity 以重新启动应用程序?
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); restartIntent = PendingIntent.GetActivity(this, 0, new Intent(this, typeof(aBroadcastReceiverMaybe)), 0); }
为我的应用捕获任何未捕获的异常。我的理解是你可能会覆盖一个函数 Thread.setDefaultUncaughtExceptionHandler() ,但这是在 android 的 Java 实现中。我不太确定这在 xamarin 框架下是如何工作的
在未捕获的异常覆盖中,创建一个 AlarmManager,它将在 4 秒后从第 1 步触发 PendingIntent。使用 exit() 函数强制退出应用程序,再次不确定在 xamarin 框架下的实现。
在第 3 步延迟 4 秒后,将通知 BroadcastReceiver。收到通知后,启动 MainLauncher Activity 以重新启动应用程序。
如果有更合适的实现来完成这项任务,我很乐意接受。希望能尽快收到您的回音。