1.問題描述:
申請了長時任務,但應用切到後台一段時間後會自動終止。
解決方案:
【背景知識】
應用退至後台後,在後台需要長時間運行用户可感知的任務,如播放音樂、導航等。為防止應用進程被掛起,導致對應功能異常,可以申請長時任務,使應用在後台長時間運行。
【解決方案】
長時任務支持的類型,包含數據傳輸、音視頻播放、錄製、定位導航、藍牙相關業務、多設備互聯、音視頻通話和計算任務,具體不同類型規格參數以及對應使用場景可查看長時任務使用規格。
在長時任務中,支持同時申請多種類型的任務,也可以對任務類型進行更新。應用退至後台執行業務時,系統會做一致性校驗,確保應用在執行相應的長時任務。
詳細的約束與限制可查看長時任務的約束與限制。開發流程參考長時任務的開發流程。
2.問題描述:
一個應用是否能啓動多個長時任務?
解決方案:
不是多UIAbility場景下不支持,長時任務有數量限制,一個UIAbility(FA模型則為ServiceAbility)同一時刻僅支持申請一個長時任務,即在一個長時任務結束後才可能繼續申請。如果一個應用同時需要申請多個長時任務,需要創建多個UIAbility;一個應用的一個UIAbility申請長時任務後,整個應用下的所有進程均不會被掛起。
3.問題描述:
使用socket實現後台消息推送,接入長時任務後,為什麼鎖屏後長時任務仍被殺死?
解決方案:
數據傳輸規格為傳輸速度(上傳+下載)持續60秒低於16kB/s時,長時任務會被殺死。建議提高傳輸速度,保證每60秒內發送一次數據量大於16kB的心跳包,防止長時任務被殺死。
4.問題描述:
在後台對RDB進行超過3分鐘的插入更新操作,可以使用長時任務的哪種類型?
解決方案:
當前對於PC/2in1設備,可以使用TASK_KEEPING長時任務類型插入更新RDB;對於手機和平板暫不支持使用長時任務進行RDB的插入更新操作。
5.問題描述:
長時任務啓動後,任務欄的系統提示信息“xxx應用在後台進行數據傳輸任務”是否可以自定義?
解決方案:
通知內容是一個固定值,長時任務不一樣提示的信息也不一樣,目前不可以自定義。
6.問題描述:
定位的長時任務可以保活多久?
解決方案:
正常情況下,定位的長時任務可以一直保活。但是位置長時間保持不動,應用會被掛起,保活結束。