2012-06-14 18 views
0

我想創建一個簡單的應用程序,用戶可以在其中拍照。關鍵的是我需要確保照片儘快上傳到我們的服務器。即使拍攝了照片,但沒有互聯網連接,或者即使上傳過程中電池電量不足,或者您可以想到其他任何場景,這也必須如此。可以保證照片在後臺上傳嗎?

解決這個問題的最簡單方法是使用進度條,但我真的不希望我的用戶不必要地等待。

照片下次啓動時照片不夠好,因爲我需要照片儘可能快。

我的問題是,是否有可能確保照片上傳到後臺?

This問題有點類似,但我沒有任何可以使用的位置,所以應用程序可能會被拒絕我的App Store。

+0

那麼你的問題是什麼? – fzwo

+0

@fzwo感謝您的詢問。我已經澄清了。 – David

回答

3

簡而言之:你不能保證任何事情。你只能嘗試並希望它上傳,有些事情你可以做,以最大限度地提高你的機會,但如果沒有連接很長一段時間,沒有什麼可以做,因爲你提到的限制。

您只能在應用程序處於前臺時執行上載。

除非你有背景類型 - 正如你猜測假如你假裝有位置,或者其他類型之一,而你沒有,那麼你將被拒絕。

所以你唯一可用的其他選擇是使用beginBackgroundTaskWithExpirationHandler。

一旦用戶離開了你的應用程序,這會給你大約10分鐘的時間在後臺執行(但是如果他們終止了應用程序,你就無能爲力)。

如果在應用程序處於前臺時沒有連接+在移動到後臺時多餘的10分鐘除了下次應用程序啓動時再次嘗試以外,沒有任何事情可以做。

使用Reachability類來查看url是否可以訪問,如果是的話嘗試上傳它,如果沒有註冊可達性狀態變化的通知,並且一旦出現可達性嘗試再次上載它。

如果您有可接通性,請嘗試上傳,如果網絡故障只是保持重試狀態,直到10分鐘到位。

P.S. 如何保證在電池耗盡時能夠上傳?

+0

謝謝你的回答。人們可以期望保證上傳的東西,如果應用程序會自動重新啓動,當手機再次擁有權力。 – David

+1

應用程序不能自動重新啓動,除了後臺模式(如位置)。 – Gruntcakes

+0

使用可達性之前,請務必嘗試連接*。當Reachability報告失敗時嘗試連接可能會成功。 –