Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.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
继续在后台运行iOS应用程序,从加速器收集数据并将其发送到服务器_Ios_Iphone_Background Process - Fatal编程技术网

继续在后台运行iOS应用程序,从加速器收集数据并将其发送到服务器

继续在后台运行iOS应用程序,从加速器收集数据并将其发送到服务器,ios,iphone,background-process,Ios,Iphone,Background Process,我开发了一个应用程序,用于读取加速器数据,在本地存储它们,并以特定的间隔频繁地将它们发送到服务器。该应用程序必须在后台运行,但过了一段时间(有时3分钟),它会停止发送,就像关闭了一样 是否有可能让应用程序一直处于活动状态,运行并将数据发送到后台服务器?怎么做 该应用程序应该能持续工作数周 谢谢各位 iOS will allow you 3 minutes of execution in background. 如果你想继续运行,有各种“变通办法”,但没有一个稳定的解决方案。你可以启动后台任

我开发了一个应用程序,用于读取加速器数据,在本地存储它们,并以特定的间隔频繁地将它们发送到服务器。该应用程序必须在后台运行,但过了一段时间(有时3分钟),它会停止发送,就像关闭了一样

是否有可能让应用程序一直处于活动状态,运行并将数据发送到后台服务器?怎么做

该应用程序应该能持续工作数周

谢谢各位

iOS will allow you 3 minutes of execution in background. 

如果你想继续运行,有各种“变通办法”,但没有一个稳定的解决方案。你可以启动后台任务,然后管理它们

 -(void)applicationDidEnterBackground:(UIApplication *)application

{ 
  UIApplication *app = [UIApplication sharedApplication];

    UIBackgroundTaskIdentifier bgTask = 0;

    backgroundTimer = [NSTimer scheduledTimerWithTimeInterval:10 target:self              selector:@selector(backgroundTask) userInfo:nil repeats:YES];

    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
   [app endBackgroundTask:bgTask];
 }];

}

但有些应用程序(如Viber或Whatsapp)一直在运行。您可以使用apple推送通知服务唤醒应用程序并在后台工作。我尝试了上述解决方案(使用计时器),并添加了[locationManager startUpdatingLocation];[locationManager停止更新位置];在backgroundTask方法中,但在一段时间后(超过3分钟),它停止更新位置,并且应用程序基本上在后台停止。知道是怎么发生的吗?你需要更多的工作。您可以使用此链接中的一些帮助:如果您觉得有帮助,请接受:D