2013-05-09 82 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安排本地通知,但這些需要用戶操作以「啓動」應用程序備份,它們不直接調用您的應用程序。