应用中的背景模式用法

时间:2016-01-14 06:51:14

标签: ios appstore-approval background-mode backgroundtaskidentifier

我正在开发一款iOS应用程序,每分钟都会将数据更新到服务器。即使应用程序转到后台,我也希望进行此数据更新。我在“功能”中启用了“后台模式”,但未选中任何后台选项。也使用下面的代码

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

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

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

我的查询是,是否有机会拒绝App Store中的应用程序?

1 个答案:

答案 0 :(得分:0)

使用此后台任务时,它只运行几分钟。 (在没有通过Xcode连接的设备上进行测试。如果你在模拟器上测试这个,你可以沉浸在应用程序继续在后台运行的感觉,当在现实世界中,他们赢了。)

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

总而言之,Apple不会允许应用程序以某种方式绕过这些狭义定义的场景。此外,如果您经常发起新请求,您可以杀死用户的电池并使用他们的手机数据计划。