早期版本的中國大學(xué)MOOC一旦被掛起后,應(yīng)用在完成當(dāng)前下載任務(wù)后無法繼續(xù)添加新任務(wù),當(dāng)然也無法將緩存狀態(tài)寫入數(shù)據(jù)庫。這個(gè)問題能否順利解決直接關(guān)系到用戶體驗(yàn)。

順便吐槽下,凡是使用了后臺(tái)文件傳輸還提示你下載過程中不要掛起應(yīng)用的,應(yīng)該都是這個(gè)問題。

那么如何解決呢?

解決問題的關(guān)鍵在于,既然應(yīng)用被掛起后App是無法執(zhí)行代碼了,但是我們還有后臺(tái)任務(wù)??!

大致的思路是,在App被掛起后,我們使用后臺(tái)任務(wù)在文件傳輸完成后根據(jù)文件傳輸?shù)臓铙w來更新數(shù)據(jù)庫,并且啟動(dòng)新的文件傳輸任務(wù)。

首先我們創(chuàng)建一個(gè)后臺(tái)任務(wù)類DownloadTask并實(shí)現(xiàn)IBackgroundTask

Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

        private BackgroundTaskDeferral _deferral;        public void Run(IBackgroundTaskInstance taskInstance)
        {
            BackgroundTransferCompletionGroupTriggerDetails details = taskInstance.TriggerDetails                as BackgroundTransferCompletionGroupTriggerDetails;            if (details == null)
            {                // This task was not triggered by a completion group.
           
        
		

網(wǎng)友評(píng)論