我有一個關於Alamofire及其與後臺任務配置的SessionManager的行爲的問題。我正在使用它在後臺上傳視頻。鏈接背景任務Alamofire
步驟一:將視頻上傳:
這部分是標準的,但是,當上傳完成後:
步驟二:完成上傳:
我需要發送一個DELETE請求到服務器讓它知道視頻上傳已完成。如果成功,響應將包含新上傳的視頻的位置標題。
第三步添加視頻元數據:
有了這個位置,我需要PATCH請求視頻元數據:標題和說明。
所以我的問題是關於覆蓋會話管理器委託關閉。我可以覆蓋sessionDidFinishEventsForBackgroundURLSession
和taskDidComplete
,當我完全結束後臺時,我需要調用系統completionHandler,將其作爲SessionManager上的一個屬性存儲...因此,何時/應在哪裏觸發DELETE請求,然後何時/我應該在哪裏發起PATCH請求?
我應該創建3個不同的後臺會話配置標識符,以便我可以識別它們並確保按正確的順序鏈接它們嗎?因爲顯然我不能在封閉中說:第一次你被請求解僱了,但第二次解僱了這個請求? 2的哪個關閉是完成整個過程並調用系統completionHandler的正確方法?我不確定這是否正確,因爲我將與Alamofire上傳響應處理程序不同步。
另外我想知道Alamofire響應處理程序。如果應用程序一直在前臺?我會簡單地使用響應處理程序將alamofire請求鏈接在一起?但如果應用程序終止並在後臺運行,這些處理程序還會在哪裏?
任何有識之士將不勝感激。我意識到這裏有很多事情要做,蘋果前夕限制後臺任務,我只是想知道這是否可能,如果是的話,如何去做呢?
通過將其分爲具有段落的部分使其更具可讀性。 –