JobScheduler 從 Android 5.0(API 21) 開始提供,可用于在充電狀態(tài)、待機(jī)閑置、Wifi連接狀態(tài)等特定環(huán)境下,指示系統(tǒng)調(diào)度執(zhí)行某些高消耗任務(wù),如上傳下載文件、更新資料等,有助于優(yōu)化系統(tǒng)性能,節(jié)省電池消耗。
特性
- 支持在一個(gè)任務(wù)上組合多個(gè)條件
- 內(nèi)置條件:設(shè)備待機(jī)、設(shè)備充電和連接網(wǎng)絡(luò)
- 支持持續(xù)的job,這意味著設(shè)備重啟后,之前被中斷的job可以繼續(xù)執(zhí)行
- 支持設(shè)置job的最后執(zhí)行期限
- 根據(jù)你的配置,可以設(shè)置job在后臺(tái)運(yùn)行還是在主線程中運(yùn)行
使用流程
- 派生 JobService 子類,定義需要執(zhí)行的任務(wù)(UI線程)
- 從 Context 中獲取 JobScheduler 實(shí)例(相當(dāng)于管理器)
- 構(gòu)建 JobInfo 實(shí)例,指定 JobService 任務(wù)實(shí)現(xiàn)類及其執(zhí)行條件
- 通過(guò) JobScheduler 實(shí)例加入到任務(wù)隊(duì)列
參考:在Android 5.0中使用JobScheduler