是否可以在给定时间自动启动应用程序(在后台)?

时间:2013-12-10 16:37:03

标签: ios notifications background-process

我的应用每天都有不同的下载内容,但我希望每次可用时自动更新此内容,并在应用已在本地下载内容(在后台运行)时向用户发送通知。我应该使用applicationDidEnterBackground吗?

- (void)applicationDidEnterBackground:(UIApplication *)application{}

但我正在阅读此背景状态可能只持续几分钟,并且在用户更改为另一个应用程序或点击了主页后必须进入后台,所以如何在凌晨1:00触发此背景状态(处于非活动状态时)例? ...另一种选择可能是在新内容可用时向用户发送通知,并在用户打开应用程序后立即下载(但这肯定是计划B)。 我愿意接受建议

1 个答案:

答案 0 :(得分:1)

您可以发送静音推送通知。这与普通推送通知的工作原理相同,只是它没有发出声音或警告用户他们已收到它。然后,您的应用将在iOS后台打开并运行您的代码。

然后推送会触发这个del方法:

- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

然后,您可以在完成处理程序中执行代码。有一个时间限制,APNS会自动限制静默推送通知,以防止不断发送垃圾邮件。

下次用户打开您的应用时,系统会预先加载新内容并等待它们。这似乎就是你所追求的......?

请参阅:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4

靠近底部有两个部分:

“定期获取少量内容”

“使用推送通知启动下载”