performSelector:withObject:afterDelay:app返回前台后不按计划触发

时间:2013-01-04 16:26:23

标签: ios

我正在使用performSelector调度选择器:withObject:afterDelay:延迟五分钟。如果设备在预定的情况下进入休眠状态超过五分钟,则会发生以下两种情况之一:

1)如果设备连接到我的笔记本电脑,并且应用程序正在调试器中运行,那么当应用程序唤醒时,选择器会立即触发。似乎"时钟一直在运行"为了延迟。

2)如果设备未连接,则选择器触发前会有一段延迟。似乎"时钟暂停"对于延迟选择器。

根据设备是否连接到调试器,会出现两种不同的行为,这似乎很奇怪。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我注意到调试器似乎强制应用程序在后台运行。

通常,如果您在真实设备上进行调试并按下主页按钮,即使在10分钟后也不会发生任何特殊情况。

另一方面,如果您强制终止设备上的应用程序,您将最终收到SIGKILL信号,该信号将终止您的调试会话。

答案 1 :(得分:0)

应用程序在后台暂停。您通常应该在applicationDidEnterBackground中保存计时器等,然后在applicationDidBecomeActive中重新启动它们。