JobScheduler是 Android Lollipop開始有的API,
目的是讓app在運作上可以和系統的步調更一致
以達到省電的效果(例如: 系統準備要休眠的時候, 剛好你的app開始要做事情而導致系統無法正常休眠)
根據SDK官網, 可能的使用時機有以下幾種
並且可以把工作排入以下時機
先看一下sample code
int mJobId = 1001;
ComponentName mServiceComponent= new ComponentName("com.abc.app", "com.abc.app.MyService");
JobInfo uploadTask = new JobInfo.Builder(mJobId,
mServiceComponent )
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
.build();
JobScheduler jobScheduler =
(JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(uploadTask);
在sample code, 每一個工作都必須JobInfo物件為單位,
透過JobInfo.Builder建立, 排入JobScheduler, 之後就交給系統執行
需要注意的是, 如果裝置已經充電2分鐘以上, 並且電量是足夠的狀態
就會把所有還在scheduler裡ready的job拿出來執行