ios - NSTimer 不会在 KILLED 背景下触发

标签 ios background nstimer

我开发了一个在后台使用地理围栏的 iOS 应用程序。当这样的事件发生时,我想发送一个HTTP请求。如果该请求失败,我想重试几次,并在调用之间延迟几秒钟。我已经使用 UIBackgroundMode 作为“位置”。

我的 NSTimer 计划如下所示:

dispatch_async(dispatch_get_main_queue(), ^{
      [NSTimer scheduledTimerWithTimeInterval:30.0 target:self selector:@selector(updateFence:) userInfo:fence repeats:NO];
});

这在前台和“正常”背景下工作正常,但如果应用程序被杀死并由 iOS 启动以进行新的地理围栏事件,则效果不佳。在这种情况下,第一个 http 调用可以工作,但是当我延迟 30 秒启动 NSTimer 时,它永远不会调用目标选择器。

除了 UIBackgroundMode 之外,我还需要使用什么才能在(已杀死的)后台使用 NSTimer 吗?我是否将计时器安排在错误的运行循环/线程上以使该特殊后台模式正常工作?

最佳答案

当它被杀死时,它就被杀死了。计时器不工作 - 故事结束 - 抱歉


备选方案可能是后台应用刷新或静默推送或用户可见的本地通知

关于ios - NSTimer 不会在 KILLED 背景下触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35748438/

相关文章:

iphone - 如何在标签中增加 NSTimer 的时间?

macos - 在菜单当前快速打开时从 NSTimer 动态更新 NSMenuItem?

ios - dismissViewControllerAnimated : not animating

ios - 无法同时满足 Storyboard中嵌入的 AVPlayerViewController 的约束警告

html - 无法居中背景图片

windows - 如何在 Windows 平台上禁用 JVM 以运行后台 matlab 脚本

ios - iPhone在后台播放图层动画时崩溃

ios - 我的应用程序一直提供 UILocalNotifications,即使代码中没有

iphone - UIButton 禁用和启用背景图像

css - 如果 :pseudo elements are not available?,还有哪些其他方法可用于裁剪/剪辑背景图像