2012-05-19 141 views
5

我正在爲客戶端編寫一個應用程序,用戶將在白天輸入數據,然後在晚上的某個點(比如午夜)輸入用戶的數據那一天應該上傳到服務器。安排一個iOS應用程序任務在後臺運行

因此,我需要安排一種方法在午夜時在我的應用程序上運行,即使應用程序在後臺也是如此。然後,此方法會將收集的數據與服務器同步並下載任何更改。

爲了實現這一點,我想我需要設置應用程序始終在後臺運行(即超過10分鐘),然後安排功能在特定時間後運行。我是否使用performSelector: withDelay:來做到這一點?或者我需要更強大的功能,因爲應用程序將在後臺?

謝謝你們!

+0

您是否得到過這方面的解決方案? –

回答

0

我不認爲你的應用程序或你想要做的是符合Apple長期運行後臺任務的要求。請查看Apple.

+0

這是一個好點 - 但實際上,該應用程序可能有資格獲得持續的位置跟蹤。午夜數據同步的原因是因爲白天用戶可能不在互聯網連接。所以也許最好的選擇是跟蹤主要的位置變化,並在每次更改互聯網連接檢查。如果用戶有足夠強的信號,同步可以從那裏開始,然後關閉數據同步直到第二天。謝謝您的幫助! – theDuncs

2

此文檔的「執行長時間運行的後臺任務」部分您可能會檢出UILocalNotifications。您可以安排該事件發生,然後設置一個徽章圖標以讓用戶知道它處理了(或不)。

關於這些的信息HERE

+0

我不希望用戶知道有關數據同步的任何信息,所以理想情況下我會(a)安排午夜的本地通知,然後(b)在通知代碼運行的午夜,我可以執行數據同步,然後不提高屏幕上的任何通知。這聽起來可行嗎?或者使用本地通知,我是否必須在屏幕上發出警報? – theDuncs

+0

感謝您的幫助,順便說一下!非常感激。 – theDuncs

+0

我認爲你可以做你正在嘗試做的事情,而不用給用戶一個視覺指示器。 –