3

我的应用程序不允许在后台运行。unexpectedExit我在方法中保存标志:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

unexpectedExit并在下一个方法中清除标志:

- (void)applicationWillTerminate:(UIApplication *)application;
- (void)applicationDidEnterBackground:(UIApplication *)application

缺少清除标志的可能原因是什么?

我知道下一个:

  1. 一些越狱员工 - 我检测到越狱设备并忽略他们的任何崩溃
  2. 用户创建的崩溃(使用 0x00000000deadfa11 代码) - 长按锁定按钮直到 UI 更改 + 长按主页按钮 - 直到崩溃。当接近传感器打开时,这种类型的崩溃是不可能的。
  3. 手动重启设备-同时长按锁定+主页按钮。当接近传感器打开时,这也是不可能的。
  4. 电池放电。我看到电池何时为 0 - 它会在退出应用程序时直接断电。我跟踪电池电量
  5. 可由 CrashLytics 或 PLCrashReporter 或类似工具处理的崩溃
  6. 与内存不足 有关的崩溃。根据文档应用程序应该能够处理它

    (void)applicationDidReceiveMemoryWarning:(UIApplication *)application;

  7. 看门狗(使用 0x8badf00d 代码)产生的崩溃也没有被任何崩溃工具处理(据我所知),我不知道有什么方法可以捕捉到这个。你知道吗?

现实告诉我,我错过了什么。它可以是什么?我上面的建议有什么错误吗?

4

1 回答 1

2

您是否考虑过附加一个马赫异常处理程序和一个信号处理程序,并使用它来设置您的标志?要求在 iOS 中终止应用程序的所有方式的完整列表似乎永远无法回答 - 每个版本都有可能添加新的异常、更改异常代码或以不同的方式响应 unix 信号。你到底想用你的标志来实现什么?

于 2013-10-03T19:45:37.017 回答