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:
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 pekerjaan yang unik dan dapat diganti, serta memantau atau membatalkan grup pekerjaan 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
- Menangani WorkManager, dari Android Dev Summit 2018
- WorkManager: Lakukan lebih dari sekadar dasar-dasarnya, dari Android Dev Summit 2019