2012-02-23 48 views
4

我有一個要求,用戶可以一個接一個地下載多個文件。 當我的應用程序進入後臺或iPad被鎖定時,下載或網絡服務響應只能持續10分鐘。下載iPad設備鎖定時間超過10分鐘的大文件

我的下載發生在一個單獨的線程中,我已經實施了beginBackgroundTaskWithExpirationHandler:一些谷歌搜索和在stackoverflow鏈接。

How to implement Task completion

App crash because of auto lock in iphone?

和iOS documetation

https://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html

現在我的一些選定的文件被下載和一些失敗,因爲一次只能10分鐘,最大運行後臺任務。

有沒有其他選擇? 我應該在應用程序進入後臺時完全暫停下載嗎? 任何人都可以幫我解決這個問題嗎?

我已經成功地通過沒有結束後臺任務這樣做,如果我的下載正在進行

bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ NSLog(@"\n beginBackgroundTaskWithExpirationHandler called \n"); if(![self checkIfDownloadInProgress]){ [self endTaskOnCompletion]; } }];

這隻能當設備由用戶手動鎖定。如果設備在2分鐘後自動鎖定,應用程序運行10分鐘,然後崩潰 任何人都可以幫忙嗎?

+0

當'beginBackgroundTaskWithExpirationHandler:'被調用時,我已經通過不使任務失效來延長後臺任務。我只有在下載完成時才使任務無效,並且這在手動鎖定設備時有效。我編輯了我的問題並添加了代碼。但是,當設備自動鎖定時,應用程序在10分鐘後崩潰。任何人都可以幫忙嗎? – krusty 2012-04-25 15:59:51

+0

嗨krusty。你有沒有嘗試過使用GCD?它應該填滿你的需求。 – Selvin 2012-05-02 11:56:53

回答

0
  1. 如果沒有必要暫停它。這是你能做的最好的事情。
  2. 其他當你的過期處理程序被調用,那麼你可以重新開始後臺任務,你會得到更多的10分鐘。
+0

你能告訴我該怎麼做嗎? – krusty 2012-02-23 12:18:32

相關問題