在后台模式下定期向服务器发送小数据
Periodic sending small data to server in background mode
我正在实施一种跟踪应用程序,我需要定位一次我的位置并每 10 - 20 秒发送一次(周期值很重要,不能超过)。
为了降低电池消耗,我停止了位置更新。这在前台工作得很好,但是当应用程序在后台移动时我该怎么办?
看了后台fetch的资料,周期性发送数据没有准确时间
我怎样才能完成这个任务?
您可以在应用程序处于后台时启动和停止定期位置更新。
为了实现这一点,从给定的 link 中添加 class for Location Update.
之后在您的 AppDelegate 中导入 LocationTracker.h。
在您的 didFinishLaunchingWithOptions 中添加以下代码。
let locationTracker : LocationTracker = LocationTracker();
locationTracker?.startLocationTracking();
在LocationTracker.m中,您可以设置重新启动的持续时间update.Here我设置为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];
我正在实施一种跟踪应用程序,我需要定位一次我的位置并每 10 - 20 秒发送一次(周期值很重要,不能超过)。 为了降低电池消耗,我停止了位置更新。这在前台工作得很好,但是当应用程序在后台移动时我该怎么办? 看了后台fetch的资料,周期性发送数据没有准确时间
我怎样才能完成这个任务?
您可以在应用程序处于后台时启动和停止定期位置更新。 为了实现这一点,从给定的 link 中添加 class for Location Update.
之后在您的 AppDelegate 中导入 LocationTracker.h。
在您的 didFinishLaunchingWithOptions 中添加以下代码。
let locationTracker : LocationTracker = LocationTracker();
locationTracker?.startLocationTracking();
在LocationTracker.m中,您可以设置重新启动的持续时间update.Here我设置为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];