Upload
rendra-toro
View
445
Download
4
Embed Size (px)
Citation preview
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