【问题标题】:Keep running the iOS app on background, collecting data from accelerator and send it to server继续在后台运行 iOS 应用程序,从加速器收集数据并将其发送到服务器
【发布时间】:2014-12-22 20:45:05
【问题描述】:

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

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

该应用程序应该可以持续工作数周。

谢谢大家。

【问题讨论】:

    标签: ios iphone background-process


    【解决方案1】:
    iOS will allow you 3 minutes of execution in background. 
    

    https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

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

     -(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 等一些应用程序一直在运行。
    • 您可以使用苹果推送通知服务来唤醒应用程序并在后台工作。
    • 我尝试了上述解决方案(使用计时器),并添加了 [locationManager startUpdatingLocation]; [locationManager 停止更新位置];在 backgroundTask 方法中,但仍然过了一段时间(超过 3 分钟)它停止更新位置并且基本上应用程序在后台停止。知道它是怎么发生的吗?
    • 你需要做更多的工作。您可以通过此链接获得一些帮助:mobileoop.com/background-location-update-programming-for-ios-7 如果您觉得有帮助,请接受:D
    猜你喜欢
    • 2014-01-18
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多