NSTimer 选择器即使在后台也会不断被调用
NSTimer selector keeps getting called even in the background
所以,我有一个 NSTimer
设置为每秒调用一个选择器:
timer = [NSTimer scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(TimerSelector:)
userInfo:nil
repeats:YES ];
这一切都很好,但是自从我更新到 iOS 8 后,我注意到即使在应用程序进入后台后,这个选择器仍然会被调用。我认为它最终会停止 运行ning,因为我相信 iOS 应用程序无故不允许 运行 在后台运行,但选择器一直被调用。我试着让应用程序保持打开状态并模拟内存警告,但选择器一直被调用超过 6 个小时。
此行为仅出现在 iOS 8 而不是 iOS 7。这正常吗? iOS 8 带来了一些我不知道的新东西吗?
听起来这可能是 iOS 8 中一个令人兴奋和有趣的变化,但恐怕这只是模拟器中的一个错误。没有证据表明计时器在后台 在设备 上继续 运行,这才是真正重要的。
设备上的情况是,除非您的应用有其他原因要在后台运行,否则当您的应用处于背景,并在您的应用进入前台时恢复,就像在以前的系统中一样。
然而,在 iOS 8 模拟器 中,有一个众所周知的错误(Apple 在 2014 年 11 月和 12 月的开发论坛帖子中表明了对它的认识):任务会持续到 运行,并且不会在应用后台运行时暂停。不加理会!模拟器只是一个模拟器。在设备上进行真正的测试。
所以,我有一个 NSTimer
设置为每秒调用一个选择器:
timer = [NSTimer scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(TimerSelector:)
userInfo:nil
repeats:YES ];
这一切都很好,但是自从我更新到 iOS 8 后,我注意到即使在应用程序进入后台后,这个选择器仍然会被调用。我认为它最终会停止 运行ning,因为我相信 iOS 应用程序无故不允许 运行 在后台运行,但选择器一直被调用。我试着让应用程序保持打开状态并模拟内存警告,但选择器一直被调用超过 6 个小时。
此行为仅出现在 iOS 8 而不是 iOS 7。这正常吗? iOS 8 带来了一些我不知道的新东西吗?
听起来这可能是 iOS 8 中一个令人兴奋和有趣的变化,但恐怕这只是模拟器中的一个错误。没有证据表明计时器在后台 在设备 上继续 运行,这才是真正重要的。
设备上的情况是,除非您的应用有其他原因要在后台运行,否则当您的应用处于背景,并在您的应用进入前台时恢复,就像在以前的系统中一样。
然而,在 iOS 8 模拟器 中,有一个众所周知的错误(Apple 在 2014 年 11 月和 12 月的开发论坛帖子中表明了对它的认识):任务会持续到 运行,并且不会在应用后台运行时暂停。不加理会!模拟器只是一个模拟器。在设备上进行真正的测试。