应用中的后台模式用法



我正在开发一个iOS应用程序,每分钟将数据更新到服务器。即使应用程序进入后台,我也想进行此数据更新。我在"功能"中启用了"后台模式",但没有选中任何后台选项。还使用了以下代码

UIApplication*    app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        NSLog(@"beginBackgroundTaskWithExpirationHandler");
        //[app endBackgroundTask:bgTask];
        //bgTask = UIBackgroundTaskInvalid;
    }];

Imp :我已经评论了[app endBackgroundTask:bgTask]bgTask = UIBackgroundTaskInvalid

现在我的应用程序在后台运行良好。

我的

问题是,有没有机会因此而拒绝我的应用程序来自App Store?

使用此后台任务时,它只运行几分钟。(在未通过 Xcode 连接的设备上对此进行测试。如果你在模拟器上测试这个,你可能会被一种应用程序继续在后台运行的感觉,而在现实世界中,它们不会。

Apple 只允许对非常狭窄的应用程序集(导航、音乐、VOIP 等)进行持续的后台操作。对于后台网络请求,存在后台NSURLSession会话(继续长时间运行的下载/上传,而不是重复发起新请求)。它还具有后台提取功能,用于根据操作系统的判断机会性地启动请求,而不是按照任何预定的时间表,当然也不是每分钟。

最重要的是,苹果不会允许以某种方式规避这些狭义场景的应用程序。此外,如果您不断发起新请求,您可以杀死用户的电池并耗尽他们的电池数据计划。

相关内容

  • 没有找到相关文章

最新更新