我想定期製作一個應用程序,它會自動從用戶定義的網站列表中下載一些數據,然後根據這些數據分析並顯示歷史圖表和其他報告。iOS中的經常性後臺任務
如果我在Windows中這樣做,我會使用系統任務計劃程序;如果我在Unix中,我會使用cron;如果我在Android中,我會使用服務。我想知道如何在iOS中執行此操作。
就我的研究而言,這在iOS中並不是微不足道的,因爲沒有公共接口來做這件事。然而,存在着一些變通方法來完成這件事:
拉歷史數據,當應用程序被喚醒:不可能的,因爲我不是數據的提供者,而大部分的數據提供者的,我會支持唐不存儲或提供對歷史數據的訪問。
自己下載數據並讓客戶在喚醒時將其拉出:不可取。不僅如此,我還需要額外的昂貴基礎設施(這意味着我的用戶將收取我打算成爲免費應用的費用),但也有一些內容提供商需要登錄憑據。我寧願不要求我的用戶的登錄信息來訪問他們可以得到的信息。
如果時間戳已過期,當用戶將應用程序置於前臺時,保存上次更新的時間戳並下載數據:這不符合我的目的,因爲數據可能(並且預計會)在時間。這個應用程序的全部目的是定期自動下載這些數據,以便所有歷史數據在用戶再次打開應用程序時可用。
使用本地通知:與以前幾乎相同。它需要用戶交互才能啓動應用程序,並且應用程序的整個要點是即使在用戶不使用該設備時也能獲取該數據。
使用推送通知:因爲這些只是需要用戶交互才能喚醒應用程序的通知,所以它們不能用於與本地通知相同的原因。看起來你可以在應用程序喚醒後處理所有待處理的推送通知,但是我看過你不能爲這些通知定義自定義字段。
使用後臺任務:這在技術上似乎是所有選項中最有希望的,但是這僅適用於特定類型的應用程序。我認爲「報亭應用程序」是最接近我可以得到的,它實際上是爲了在後臺下載數據。但是,正如它的名稱,它意味着下載「雜誌或報紙問題」。無論我想要做什麼都可以歸類爲這完全取決於應用程序審閱者,我寧願不製作可能會因技術性而被拒絕的應用程序。
所以,我的問題是:有沒有其他方法可以做到這一點,我不知道?是否有任何應用程序已經做了類似的事情?
也許這[問題](http://stackoverflow.com/questions/6245763/ios-timed-background-processing)可能會有所幫助。 – esh 2013-02-14 07:37:30
@ BlackFlam3不是真的。他的要求可以通過許多不同的機制輕鬆滿足。這個問題幾乎沒有我做的同樣的問題。 – 2013-02-14 07:52:56