我开发了一款在后台使用地理围栏的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以使该特殊后台模式工作?
答案 0 :(得分:1)
当它被杀死时,它被杀死。计时器将不起作用 - 故事结束 - 抱歉
备选方案可能后台应用刷新或静默推送或用户可见的本地通知