Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Menjadwalkan tugas dengan WorkManager   Bagian dari Android Jetpack.

WorkManager adalah API yang memudahkan penjadwalan pekerjaan asinkron yang dapat ditangguhkan, yang diharapkan dapat berjalan meskipun aplikasi ditutup atau perangkat dimulai ulang. WorkManager API adalah pengganti yang direkomendasikan dan direkomendasikan untuk semua API penjadwalan latar belakang Android sebelumnya, termasuk FirebaseJobDispatcher, GcmNetworkManager, dan Penjadwal Tugas selama beberapa bulan. WorkManager menggabungkan fitur pendahulunya dalam API modern dan konsisten yang bekerja kembali ke API level 14 sekaligus menyadari masa pakai baterai.

Di WorkManager, gunakan layanan operator pekerjaan yang mendasarinya berdasarkan kriteria berikut:

Jika perangkat dijalankan di API Level 23 atau yang lebih tinggi, JobScheduler akan digunakan. Pada
API Level 14-22, GcmNetworkManager dipilih jika tersedia, jika tidak,
implementasi AlarmManager dan BroadcastReciever kustom digunakan sebagai
fallback.

Catatan: Jika aplikasi Anda menargetkan Android 10 (API level 29) atau yang lebih tinggi, panggilan API FirebaseJobDispatcher dan GcmNetworkManager Anda tidak akan berfungsi lagi pada perangkat yang menjalankan Android Marshmallow (6.0) dan yang lebih tinggi. Ikuti panduan migrasi untuk FirebaseJobDerstatcher dan GcmNetworkManager untuk panduan tentang migrasi. Selain itu, lihat pengumuman Menyatukan Penjadwalan Tugas Latar Belakang di Android untuk informasi selengkapnya tentang penghentiannya.

Fitur

Selain menyediakan API yang lebih sederhana dan konsisten, WorkManager memiliki sejumlah manfaat utama lainnya, termasuk:

Batasan Pekerjaan

Secara deklaratif tentukan kondisi optimal untuk pekerjaan yang akan dijalankan menggunakan Batasan Pekerjaan. (Misalnya, jalankan hanya saat perangkat tersambung ke Wi-Fi, saat perangkat tidak aktif, atau saat memiliki ruang penyimpanan yang memadai, dll.)

Penjadwalan yang Kuat

WorkManager memungkinkan Anda menjadwalkan pekerjaan untuk menjalankan satu kali atau berulang kali menggunakan jendela penjadwalan fleksibel. Pekerjaan dapat diberi tag dan diberi nama, sehingga Anda dapat menjadwalkan jadwal yang unik, dapat diganti, digunakan, dan memantau atau membatalkan grup bersama-sama. Pekerjaan terjadwal disimpan dalam database SQLite yang dikelola secara internal dan WorkManager memastikan bahwa pekerjaan ini tetap ada dan dijadwalkan ulang di seluruh reboot perangkat. Selain itu, WorkManager mematuhi fitur penghemat daya dan praktik terbaik seperti mode Istirahatkan, sehingga Anda tidak perlu mengkhawatirkannya.

Kebijakan Coba Lagi Fleksibel

Terkadang pekerjaan gagal. WorkManager menawarkan kebijakan coba lagi fleksibel, termasuk kebijakan backoff eksponensial yang dapat dikonfigurasi.

Perantaian Pekerjaan

Untuk pekerjaan terkait yang kompleks, rantai pekerjaan individu bersama menggunakan antarmuka yang lancar dan alami, yang memungkinkan Anda mengontrol bagian mana yang berjalan secara berurutan dan mana yang berjalan secara paralel.

Kotlin


WorkManager.getInstance(...)
    .beginWith(listOf(workA,workB))
    .then(workC)
    .enqueue()

Java


WorkManager.getInstance(...)
    .beginWith(Arrays.asList(workA, workB))
    .then(workC)
    .enqueue();

Untuk setiap tugas kerja, Anda dapat menentukan data input dan output untuk tugas tersebut. Saat merantai pekerjaan bersama, WorkManager secara otomatis meneruskan data output dari satu tugas kerja ke tugas berikutnya.

Interoperabilitas Thread Bawaan

WorkManager terintegrasi tanpa hambatan dengan RxJava dan Coroutines dan memberikan fleksibilitas untuk menyambungkan API asinkron Anda sendiri.

Menggunakan WorkManager untuk Pekerjaan yang Dapat Ditangguhkan dan Dapat Diandalkan

WorkManager ditujukan untuk pekerjaan yang dapat ditangguhkan—yaitu, tidak perlu dijalankan langsung—dan diperlukan untuk menjalankan dengan andal meskipun aplikasi ditutup atau perangkat dimulai ulang. Contoh:

  • Mengirim log atau analisis ke layanan backend
  • Menyinkronkan data aplikasi dengan server secara berkala

WorkManager tidak dimaksudkan untuk pekerjaan latar belakang dalam proses yang dapat dihentikan dengan aman jika proses aplikasi berhenti, atau untuk pekerjaan yang perlu eksekusi langsung. Tinjau panduan pemrosesan di latar belakang untuk melihat solusi mana yang sesuai dengan kebutuhan Anda.

Memulai

Lihat Panduan memulai untuk mulai menggunakan WorkManager di aplikasi Anda.

Referensi lainnya

Video

Blog