在后台模式下定期向服务器发送小数据

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];