首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >背景定位

背景定位
EN

Stack Overflow用户
提问于 2014-11-03 09:59:44
回答 1查看 177关注 0票数 2

我需要跟踪用户的位置在一个特定的时间背景。背景任务能在晚上7点到11点开始吗?

到目前为止,我能够做到这一点的唯一方法是让后台任务持续运行,这似乎是一种糟糕的方法,因为它消耗了大量的电池。

我已经设置了CLLocation管理器的精度和距离过滤器,以节省电池以外的时间:

代码语言:javascript
复制
[locationManager setDesiredAccuracy:kCLLocationAccuracyThreeKilometers];
[locationManager setDistanceFilter:2000.0f];

然后,在晚上7点至11点之间将其更改为:

代码语言:javascript
复制
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager setDistanceFilter:10.0f];

我已经关闭了locationManager.pausesLocationUpdatesAutomatically,因为当用户停留15-20分钟时,它似乎会杀死后台任务--当用户再次移动时,它不会恢复。

有没有一个更好的方法,以尽量减少电池流失以外的时间。

另外,我是否正确地认为,startMonitoringSignificantLocationChanges只在超过500米时才会进行位置更新--如果是这样的话,那么在晚上7-11点的时候就不够准确了吗?

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-03 16:21:10

这是一个非常常见的问题,但不幸的是,简单的回答是,您没有可能精确地控制后台执行的时间和方式。

关于您的问题,如果startMonitoringSignificantLocationChanges仅在设备移动约500米时才更新也是正确的,它将在文档中说明,您可能会读到:)

代码语言:javascript
复制
The significant-change location service delivers updates only when there has been a significant change in the device’s location, such as 500 meters or more.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26711757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档