2012-09-16 34 views
0

我知道在這個話題中已經提出了很多問題;然而,由於他們似乎沒有具體回答我的問題,所以我有些沒有列出任何正確的答案。當應用程序在後臺時預取一些數據

當應用程序沒有運行什麼我想在我的iPhone應用程序 做取一些數據(基本上,這是一個預取,這樣當用戶使用該應用程序下一次加速的話)。什麼是最好的方法來做到這一點?

的潛在解決方案 那些我能想到的&一些從#1 &這樣的資源:

可能性1:在一天中的特定時間獲取數據(午夜後可能?)。如果這首先成爲可能,我不會「清楚」看到如何做到這一點。有些人建議使用NSTimer - >但是當應用程序被掛起時,定時器會被關閉,對吧?

可能性2:使用本地通知但我看到的是蘋果的文件明確提的是,通知被用來傳達的東西給用戶&所以這將違背蘋果的doc然後,右(?)?

可能性3:通過applicationDidEnterBackground - >beginBackgroundTaskWithExpirationHandler。儘管如此,這並不會在一天的特定時間運行提取。但是,它可能有助於「預取」的目的。這比另外兩個好嗎?

有什麼想法嗎?

回答

1

因爲您已經知道您所提供的選項都不會與ios配合使用,並且用戶始終可以關閉後臺應用程序,所以我建議您最好先取得下一個數據日曆日,每當應用程序正在運行。

+0

+1謝謝您的回覆! – Jean

1

由於samfisher沒有說你的規格。符合Apple有效的後臺要求。我可以建議你的唯一方法是使用beginBackgroundTaskWithExpirationHandler我知道這是一個「後取」而不是預取,但我猜是唯一的方法。
另一種方式,但有點棘手,用某種地理位置僞裝你的預取,這樣你可以選擇一個活動的背景。這涉及到很多諸如方面:

  • 蘋果商店拒絕
  • 電池消耗

有很多在使用這一招的應用商店應用的,我記得一個計算數據流量。

+0

+1謝謝!是的,我也認爲我應該遵守Apple文檔以避免拒絕。所以最好的選擇似乎是beginBackgroundTaskWithExpirationHandler。 – Jean

相關問題