2013-05-09 83 views

回答

1

您的代码可以在某些非常明确的条件下在后台运行; VOIP,GPS等...

除此之外,你的代码不应该运行。

同样,拥有后台线程来轮询新数据会浪费电池寿命。

使用推送通知。这正是它所设计的通知类型。

+0

你是什么意思bbum使用远程推送通知? – stefanosn 2013-05-09 23:02:12

0

您的线程只会在您的应用进入后台后的有限时间内运行。我认为你无能为力。

+0

我认为有可能在后台模式下运行代码的一部分 – stefanosn 2013-05-09 21:51:57

+0

不是问题的作者希望它的方式。即使有解决方法,它也会违反Apple的规则,所以你不能在AppStore中放置一个使用它的应用程序。 – robbartoszewski 2013-05-09 23:27:40

1

你应该阅读苹果机制的文档的这一部分: http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

基本上就可以:

  • 得到一些额外的时间(从我所看到的10分钟)完成了任务,用beginBackgroundTaskWithExpirationHandler
  • 在后台运行某些特定类型的任务(播放音频,轨道位置等)
  • 使用ULNotificationClass安排本地通知,但这些需要用户操作以“启动”应用程序备份,它们不直接调用您的应用程序。