mm2*_*m24 3 background objective-c uiapplicationdelegate ios ibeacon
我们如何检测iOS应用何时被暂停?
在UIApplicationDelegate官方文档中没有提及此方法。
这些是应用程序可以具有的状态:

(来源:apple.com)
用例:
我想记录由于位置事件而唤醒应用后停止运行的时间。例如,我有一个iBeacon,该应用程序正在跟踪。我激活了iBeacon,该应用程序在后台成功启动(持续10秒钟)。我想,当应用程序停止运行这10秒钟后,检测经过。但是,似乎没有AppDelegate方法允许拦截此事件(请考虑我正在调查此特定情况。
上一个问题: 我问过一个类似的问题,但没有得到回答。请在这里找到它。
虽然我不知道有任何回调,但是您可以查询剩余的后台时间:
NSLog(@"background time remaining: %8.2f", [UIApplication sharedApplication].backgroundTimeRemaining);
Run Code Online (Sandbox Code Playgroud)
从理论上讲,您可以将其放入线程中,并在应用终止之前大约一秒钟执行自定义代码。有关更多信息,请参见我的博客文章:
http://developer.radiusnetworks.com/2014/11/13/extending-background-ranging-on-ios.html
我认为您不会收到任何反馈表Suspended状态。挂起意味着应用程序位于内存中,但目前没有代码正在执行。
文档:
该应用程序位于内存中,但未执行代码。系统会暂停处于后台且没有任何待完成任务的应用程序。系统可以随时清除挂起的应用程序,而无需唤醒它们为其他应用程序腾出空间。
所以根据我的理解,如果一个应用程序会给你一个类似的回调,applicationDidEnterSuspendedState这将是一个悖论,原因Suspended状态意味着没有代码被执行。
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |