Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
3分钟后执行iOS 9位置更新后台任务_Ios_Xcode_Cllocationmanager_Background Process - Fatal编程技术网

3分钟后执行iOS 9位置更新后台任务

3分钟后执行iOS 9位置更新后台任务,ios,xcode,cllocationmanager,background-process,Ios,Xcode,Cllocationmanager,Background Process,我一直在深入研究这段代码,它使用一个基本的计时器来检查位置更新。然后我让它将lat/lng发送到服务器 当插入XCode并通过XCode连接时,它工作得很好,但是当我拔下并使用移动设备时,操作系统似乎总是在3分钟后完全杀死后台线程。因此,如果我将计时器设置为每30秒运行一次,我将得到~6次更新,直到我将应用程序带到前台 我已经读到,最大后台执行时间是3分钟,但在我看来,这段代码是在1分钟后重置后台任务,所以我不知道为什么我会看到这一点 一定有办法解决这个问题。我能在这里做什么 编辑:这对我很

我一直在深入研究这段代码,它使用一个基本的计时器来检查位置更新。然后我让它将lat/lng发送到服务器

当插入XCode并通过XCode连接时,它工作得很好,但是当我拔下并使用移动设备时,操作系统似乎总是在3分钟后完全杀死后台线程。因此,如果我将计时器设置为每30秒运行一次,我将得到~6次更新,直到我将应用程序带到前台

我已经读到,最大后台执行时间是3分钟,但在我看来,这段代码是在1分钟后重置后台任务,所以我不知道为什么我会看到这一点

一定有办法解决这个问题。我能在这里做什么


编辑:这对我很有帮助:

如果其他人遇到这个问题,上面列出的github repo上的代码最近已更新为iOS 9的修复程序,它将允许GPS在后台连续轮询,而不会在3分钟后终止线程。

se:

if ([self.locationManager respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
    [self.locationManager setAllowsBackgroundLocationUpdates:YES];
}

这是后台位置跟踪所需要的。

< P>在运行这个优秀的库时,任何人遇到不可靠的问题,集成到一个更复杂的应用程序中的其他XCODEL模块中,他们可能会查看后台任务列表ID数组的初始化语句,并考虑更改<代码>[NSMutableArray];to[U bgTaskIdList=[[NSMutableArray alloc]init];在BackgroundTaskManager.m中,在我这样做之前,我的行为变得不可靠。有时它工作正常,有时我得到堆栈转储。我发现这是因为bgTaskList被其他数据覆盖,导致了错误的访问错误。

aherrick您找到了解决方案吗?我尝试了编辑中列出的代码,设置了AllowBackgroundndLocationUpdates=是的,但在后台GPS轮询3分钟后,我仍然会被终止。您是否做了任何其他更改以使后台GPS轮询正常工作?嘿!事实上是的。因此我意识到没有必要设置背景极。我只是简单地将BackgroundModes设置为Location。它仅在该点工作点