2014-11-14 68 views
3

我有一个应用程序在后台运行。我想定期将其唤醒:无论是预设时间还是每隔n小时。这必须在用户不干预的情况下完成。启动/定期唤醒iOS应用程序

我相信,由于该应用程序在后台运行,NSTimer将无法正常工作。我怎样才能定期唤醒我的应用程序?

回答

5

当然,这是可能的,并且很容易实现。
该技术被称为后台提取。
它是这样工作的 -
1)您要求操作系统在特定时间唤醒/启动您的应用程序。
2)操作系统决定,并定期启动应用程序并调用

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 

3)你做你的工作有,也可以触发本地推送通知用户,新的数据是可用的。

这里是一个伟大的article that covers your question

+0

确保您返回适合完成处理程序的内容。为了简明地获得后台CPU,它应该是'completionHandler(UIBackgroundFetchNewData);'。如果你没有返回任何东西,iOS最终会定期停止唤醒你的应用程序。 – Axeva 2014-11-14 16:23:05

+0

这是非常有帮助的。谢谢,我有一些阅读要做。 – Bassman 2014-11-14 16:42:55

0

您可以将推送通知;但是,用户必须选择打开通知。

相关问题