2010-09-28 103 views
6

在我的應用程序,我下載25MB左右+數據。期間,如果用戶按下中間的按鈕和應用進入後臺應該做些什麼,以便下載繼續一旦應用涉及到前臺繼續下載被切換到後臺

回答

2

你有一點點時間來存儲,並決定做一些事情時,應用程序下載過程進入背景。我認爲最好的辦法是以某種方式關閉數據。

如果是文本數據,這將是很容易,只要打入許多小的文本文件,並記住你下載的是什麼。

如果它包含大量的圖片和視頻,爲您節省下載的圖像或視頻的最後一個(可能是指數)。

一般情況下,嘗試將數據分手許多較小的,使得在一個休息不會影響其他部分,你可以重新下載的那部分。

+0

當用戶選擇該應用,如果應用程序來自於背景的前景,我總能找到顯示相同的畫面。在那種情況下,我認爲下載操作將會恢復。我對麼 ?。注意:我還沒有在iPhone上測試過。 – thndrkiss 2010-09-28 13:39:40

+1

不,下載操作將不會恢復。您的下載連接已損壞,您必須通過您的代碼重新啓動它 – vodkhang 2010-09-28 14:52:11

+0

我有疑問。我只是試圖從我的iphone 3gs手機4.0.2 os下載。它沒有任何處理工作。我沒有做任何處理,反之亦然。這是一個預期的行爲? – thndrkiss 2010-09-29 19:25:51

3

退房的Executing Code in the Background部分的iOS應用程序編程指南中,它說:

它被暫停之前的任何時候,一個 應用程序可以調用 beginBackgroundTaskWithExpirationHandler: 方法向系統提供額外 時間在後臺完成一些長期運行的 任務。

+0

我認爲在這種情況下額外的時間是不夠的,因爲25+ MB的數據是如此之大 – vodkhang 2010-09-28 13:28:04

+1

這是可能的;我相信您獲得的額外時間僅限於10分鐘(在當前的操作系統版本中)。如vodkhang所說,將數據分解成小塊是很好的建議。儘管如此,如果你想在後臺繼續至少一些下載,那麼beginBackgroundTaskWithExpirationHandler:很重要:通過調用它,你可以在用戶點擊主頁按鈕之後運行10分鐘而不是10秒。 – 2010-09-28 14:22:46

+0

我沒有測試10分鐘。這是一個很好的事實要知道。然後,我認爲有可能,10分鐘以上的25+ MB數據並不是那麼多 – vodkhang 2010-09-28 14:53:18