2011-04-21 51 views
2

在支持多任務處理的設備上,我希望我的iOS應用程序在應用程序未運行時(即暫停)在「後臺」運行一個函數。我知道iOS支持在後臺運行任務,但我不確定如何使該功能重複使用(並且僅在應用程序不在後臺時)。什麼是最好的方法?iOS應用程序如何以循環方式(即每小時一次)在後臺運行一個函數?

我對在後臺運行一個長期功能不感興趣,但是隻需更新應用程序徽章#的短期功能。但是,這個數字是根據應用程序的數據動態生成的,需要針對核心數據運行查詢。

爲了進一步澄清,是的,我的核心數據不會改變,但徽章代表了許多到期的項目。隨着時間的推移,更多的項目將會到期,所以我想更新徽章以顯示適當的項目,隨着時間的推移。因此,如果5件物品現在到期,但半小時後還有3件物品到期,那麼在下一小時到來時,即使核心數據本身沒有改變,也會有8件物品到期。

+0

您可以使用預定的本地通知來通知用戶,但我認爲這樣做會失敗。你想在後臺運行什麼活動? – tomasmcguinness 2011-04-21 14:54:57

+0

你的CoreData數據庫在應用程序暫停時不會改變,那麼數字如何改變? – 2011-04-21 15:07:19

回答

1

如果存儲在Core Data中的數據沒有變化,爲什麼您需要每小時更新一次徽章數據?即。該應用程序沒有運行?

您可以使用推送通知(如之前發佈的內容)執行此操作,也可以在應用程序關閉或後臺使用基於數據的計劃本地通知。我認爲這些都是你唯一的選擇。

+0

正如我在我編輯的問題中提到的,徽章代表了許多到期的項目。隨着時間的推移,這個數字會增加,我希望這個數字能夠準確地反映此時到期的項目數量。 – Jason 2011-04-21 15:13:06

+2

然後,您需要計算徽章值在什麼時候需要減少,並使用本地通知來更新。 – 2011-04-21 15:58:56

4

它不能,允許在後臺運行的唯一任務是:音頻,voip和位置。

+0

爲了澄清,我對在後臺運行一個長期功能不感興趣,但是隻是簡單地更新應用程序徽章#的短期功能。但是,這個數字是根據應用程序的數據動態生成的,需要針對核心數據運行查詢。 – Jason 2011-04-21 14:55:15

+0

我猜數據是本地的,所以推送通知不是一個選項? – koregan 2011-04-21 15:04:00

+0

不,他們不是。 – Jason 2011-04-21 15:04:26

相關問題