NSTimer不会在KILLED背景中触发

时间:2016-03-02 13:21:14

标签: 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?我是否在错误的runloop / thread上安排Timer以使该特殊后台模式工作?

1 个答案:

答案 0 :(得分:1)

当它被杀死时,它被杀死。计时器将不起作用 - 故事结束 - 抱歉

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