0

我有一个 NSThread 来检查互联网上的新数据。即使用户在后台运行该应用程序以检查是否有新数据到达然后显示本地通知,是否可以运行此线程?

任何帮助表示赞赏。谢谢!

4

3 回答 3

1

您的代码可以在某些非常明确的条件下在后台运行;网络电话、全球定位系统等...

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

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

使用推送通知。这正是它设计的那种通知。

于 2013-05-09T22:09:26.063 回答
1

您应该阅读 Apple 文档的这一部分:http: //developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

基本上你可以:

  • 使用beginBackgroundTaskWithExpirationHandler获得一些额外的时间(距离我所见的 10 分钟)来完成任务
  • 在后台运行某些特定类型的任务(播放音频、跟踪位置等)
  • 使用 ULNotificationClass 安排本地通知,但这些需要用户操作来“启动”您的应用程序备份,它们不会直接调用您的应用程序。
于 2013-05-09T22:14:10.420 回答
0

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

于 2013-05-09T21:48:48.920 回答