iphone - iPhone 应用程序处于非事件状态时 NSTimer 回调

标签 iphone nstimer

这个问题似乎是这个论坛上其他几个问题的本质。我相信事件的iPhone应用程序有可能继续运行,特别是在进入非事件状态后继续接收计时器回调(通过屏幕锁定中的空闲计时器,或者通过用户按下硬件锁定按钮)。

文档特别指出,当应用程序处于非事件状态时,它正在执行,但不会分派(dispatch)传入事件(我没有提供链接,因为我对 NDA 很紧张 - 我应该对此放松吗?整篇文章是违反?叹息)。

此外,用户“Ambr Str”的两个答案直接指出可以继续接收计时器回调,并且他提供了一段代码来实现它(我无法链接到此,因为我是新用户,抱歉 - 搜索问题:“当 iPhone 进入待机模式时,iPhone 应用程序会发生什么?”以找到答案。

我尝试按照他的建议创建回调,但是一旦我的应用程序变得不活动,回调就会停止触发。

我刚刚注意到,当 iPhone 插入时,如果应用程序变得不活动(由于空闲超时或我按下 sleep 按钮),回调确实会继续发生 - 也许我应该让我的用户随身携带电池组;-)

最佳答案

Apple 论坛上对此问题有一个很好的答案。搜索“Timer”和“Eskimo”(提供答案的乐于助人的小伙子)。

简而言之,应用程序变为非事件状态后不久,手机确实会进入休眠状态。防止这种情况的唯一方法是播放一些音频(或在后台应用程序中播放一些音频)。播放音频时,手机不会休眠,您的应用程序将继续运行。

建议播放保持清醒音频是一种黑客行为,如果可能的话,您不应该这样做。我认为在我的应用程序(执行穿插有静默期的音频播放)中,该方法即使不理想,也是有效的!

关于iphone - iPhone 应用程序处于非事件状态时 NSTimer 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/897225/

相关文章:

iPhone Cocos2D - 使用特定图像启动场景

ios - 如何在 Iphone Phonegap 中播放内联视频

ios - 一段时间后 NSTimer 在后台停止触发

ios - 倒数计时器不会在00:00:00:00:00停止

ios - Label 和 NSTimer 阴影设计

iphone - 将 RGB 值转换为 CMYK

iphone - 在应用程序不运行期间,如何增加applicationIconBadgeNumber的值?

iphone - MonoTouch - System.Reflection.Emit.ModuleBuilder 错误

Swift:我的 NSTimer 有问题吗?

iphone - 在 Iphone 中创建秒表