我的应用每天都有不同的下载内容,但我希望每次可用时自动更新此内容,并在应用已在本地下载内容(在后台运行)时向用户发送通知。我应该使用applicationDidEnterBackground吗?
- (void)applicationDidEnterBackground:(UIApplication *)application{}
但我正在阅读此背景状态可能只持续几分钟,并且在用户更改为另一个应用程序或点击了主页后必须进入后台,所以如何在凌晨1:00触发此背景状态(处于非活动状态时)例? ...另一种选择可能是在新内容可用时向用户发送通知,并在用户打开应用程序后立即下载(但这肯定是计划B)。 我愿意接受建议
答案 0 :(得分:1)
您可以发送静音推送通知。这与普通推送通知的工作原理相同,只是它没有发出声音或警告用户他们已收到它。然后,您的应用将在iOS后台打开并运行您的代码。
然后推送会触发这个del方法:
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
然后,您可以在完成处理程序中执行代码。有一个时间限制,APNS会自动限制静默推送通知,以防止不断发送垃圾邮件。
下次用户打开您的应用时,系统会预先加载新内容并等待它们。这似乎就是你所追求的......?
靠近底部有两个部分:
“定期获取少量内容”
和
“使用推送通知启动下载”