我正在实施一种跟踪应用程序,我需要发现一次我的位置,每10-20秒发送一次(周期值很重要,不能超过)。 为了降低电池消耗,我停止了位置更新。这在前景中效果很好,但是当app在后台移动时我该怎么做呢? 我查看了有关后台获取的信息,但它没有获得定期发送数据的准确时间
我该如何执行此任务?
答案 0 :(得分:1)
当app在后台时,您可以启动和停止定期更新位置。 为了实现这个,从Location Update的给定链接添加类。
之后在AppDelegate中导入LocationTracker.h。
在didFinishLaunchingWithOptions中添加以下代码。
let locationTracker : LocationTracker = LocationTracker();
locationTracker?.startLocationTracking();
在LocationTracker.m中,您可以设置持续时间以重新启动更新。我设置1分钟或60秒。
//Restart the locationMaanger after 1 minute
self.shareModel.timer = [NSTimer scheduledTimerWithTimeInterval:60 target:self
selector:@selector(restartLocationUpdates)
userInfo:nil
repeats:NO];
您还可以设置获取位置的持续时间。在这里,我获取10秒的位置。
self.shareModel.delay10Seconds = [NSTimer scheduledTimerWithTimeInterval:10 target:self
selector:@selector(stopLocationDelayBy10Seconds)
userInfo:nil
repeats:NO];