Andrew - Job scheduler

Post on 09-Jan-2017

451 views 4 download

Transcript of Andrew - Job scheduler

Job Manager &Scheduler

Andrew KurniadiGoogle Developer Expert

Mau Buat Scheduled Task?(Task Terjadwal)

Caranya?● Alarm Manager● JobScheduler● TimerTask

Kenapa Job Scheduler?● Penghematan Baterai● Mengatasi network yang tidak stabil ● Bertahan dari Aplikasi Restart

Ciri-Ciri Task Yang Cocok● Tidak mempunyai UI● Butuh akses ke Network atau Wifi● Bisa dijalankan bersamaan● Timing tidak penting● Device dalam keadaan charging

Jobpublic class TestJobService extends JobService {

@Override

public boolean onStartJob(JobParameters params) {

// Do some work

return true;

}

@Override

public boolean onStopJob(JobParameters params) {

Log.i(TAG, "on stop job: " + params.getJobId());

return true;

}

}

JobInfo

JobInfoJobInfo.Builder: mendefinisikan kondisi dimana Task/Job tersebut harus berjalan

● Device sedang dalam keadaan charging● Device sedang idle● Device sedang terkoneksi wifi● Set deadline tertentu● Jalan dalam jam tertentu● Delay tertentu

JobInfoJobInfo.Builder builder = new JobInfo.Builder(JOB_ID,mServiceComponent);

builder.setMinimumLatency(1000);

builder.setOverrideDeadline(5000);

builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);

builder.setRequiresDeviceIdle(true);

builder.setRequiresCharging(true);

JobScheduler jobScheduler =

(JobScheduler) getApplication().getSystemService(Context.

JOB_SCHEDULER_SERVICE);

// Schedule the job

jobScheduler.schedule(builder.build());

API 21+Works on Lollipop and above only

Alternatives

Alternatives● Android Job - https://github.com/evernote/android-job● GCM Network Manager - https://developers.google.com/cloud-

messaging/network-manager

Demo Timehttps://github.com/akurni/JobScheduler-Sample.git

Terima Kasih@akurni