应用委托的 applicationWillTerminate 方法在用户关闭应用或关闭设备时不会被调用。

13 浏览
0 Comments

应用委托的 applicationWillTerminate 方法在用户关闭应用或关闭设备时不会被调用。

我需要知道我的应用程序何时被终止(我不是指进入后台)。

不幸的是,applicationWillTerminate方法从未被调用。

我在SO上找到了一些关于应用程序进入后台的帖子,但我真的需要在它们被终止时获得通知。(按两次home按钮,然后向上滑动)

有什么办法可以在应用程序被终止时获得通知吗?

0
0 Comments

当用户关闭应用程序或关闭设备时,不会调用应用程序委托的applicationWillTerminate方法。

这个问题的原因是当应用程序被杀死时,我们无法在应用程序中收到任何通知。应用程序只会收到一个信号9,并且内核会清理进程,包括所有的线程。

解决方法是重写一些信号处理程序(TERM最有可能),重写-applicationWillTerminate:方法,并记录到文件中。确保在写入后刷新或关闭文件。然后关闭设备。我认为文件仍然是空的...你可以使用“a”模式打开文件,并使用我的MPLog库。它在每个日志行后刷新日志到磁盘,并且还可以告诉你当前所在的线程。

我刚刚在调试器运行时进行了测试,看起来是SIGKILL(至少这是Xcode告诉我的..)。这意味着我没有机会了。

0