我最近將我的後臺同步下載移動到視圖控制器,並需要一些關於如何最好地處理它們異步的建議。我已經編寫了所有代碼,以便在下載過程中顯示進度視圖,但您可能已經猜到它並不那麼簡單。這是它的工作原理。如何處理多個異步下載
用戶看到一個tableview,每個數據庫有兩個entires。他們可以按下按鈕來下載數據庫,並在下載開始時觸發異步URL連接等。這在一定程度上起作用,但並不那麼簡單。
這是我想要它做的。
- 下載主更新URL(工作正常)
- 然後下載一個輔助URL。
- 然後應用第一URL內容sqlite的存儲(代碼爲書面)
- 再申請第二個URL內容sqlite的存儲(代碼爲書面)
(所有的同時顯示進度給用戶)
當下載同步時,這很容易,因爲我只是等待他們完成以便關閉下一個活動,但是當使用異步方法時,我正在努力如何讓他們等待。步驟3取決於步驟1完成,步驟4取決於步驟2完成,並且總體成功取決於所有完成。步驟4需要等待步驟3完成,否則數據庫鎖定將導致衝突。
第二個複雜情況是,如果用戶在第一個下載時按下第二個按鈕,則步驟3,4如果在第一行訪問數據庫的同時執行,則會發生衝突。
有沒有人做過類似的事情,如果有的話,你用什麼策略來管理事件流。
另外我想用ExpirationHandler把它全部包裝在一個backgroundTask中,這樣它可以在用戶按下主頁按鈕的時候生存......但是當我這樣做時,委託方法不會被調用。