0

如果触发未捕获的异常导致应用程序退出,我对自动重启基于 android 的应用程序的选项有疑问。我实现这个请求的想法如下,

  1. 在 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); }

  2. 为我的应用捕获任何未捕获的异常。我的理解是你可能会覆盖一个函数 Thread.setDefaultUncaughtExceptionHandler() ,但这是在 android 的 Java 实现中。我不太确定这在 xamarin 框架下是如何工作的

  3. 在未捕获的异常覆盖中,创建一个 AlarmManager,它将在 4 秒后从第 1 步触发 PendingIntent。使用 exit() 函数强制退出应用程序,再次不确定在 xamarin 框架下的实现。

  4. 在第 3 步延迟 4 秒后,将通知 BroadcastReceiver。收到通知后,启动 MainLauncher Activity 以重新启动应用程序。

如果有更合适的实现来完成这项任务,我很乐意接受。希望能尽快收到您的回音。

4

1 回答 1

2

你最好处理错误队友。作为用户,如果我的手机上有一个有问题的应用程序,并且每次它崩溃时它都会自动重新启动,那只会成为一种烦恼。

于 2013-02-15T06:08:04.627 回答