Pemrosesan data di latar belakang adalah bagian penting dalam pembuatan aplikasi Android, yang responsif bagi pengguna Anda dan ramah pengguna di platform Android. Panduan ini menjelaskan kategori tugas latar belakang, memberikan kriteria untuk mengategorikan tugas, dan merekomendasikan API yang sebaiknya digunakan untuk menjalankan tugas.
Prinsip panduan
Secara umum, tugas apa pun yang memerlukan waktu lebih dari beberapa milidetik akan dialihkan ke thread latar belakang. Tugas umum yang berjalan lama meliputi hal-hal seperti mendekode bitmap, mengakses penyimpanan, mengerjakan model machine learning (ML), atau melakukan permintaan jaringan.
Kategori tugas latar belakang
Tugas latar belakang dikelompokkan ke kategori berikut:
- Segera
- Ditangguhkan
- Tepat waktu
Untuk mengategorikan tugas, jawab pertanyaan berikut dan jelajahi pohon keputusan yang sesuai di gambar 1:
- Apakah tugas harus diselesaikan saat pengguna berinteraksi dengan aplikasi?
- Jika demikian, tugas ini dapat dikategorikan sebagai eksekusi segera. Jika tidak, lanjutkan ke pertanyaan kedua.
- Apakah tugas harus dijalankan pada waktu yang tepat?
- Jika tugas harus dijalankan pada waktu yang tepat, kategorikan tugas sebagai tepat waktu.
Sebagian besar tugas tidak harus dijalankan pada waktu yang tepat. Umumnya, tugas memungkinkan sedikit perbedaan saat dijalankan yang didasarkan pada kondisi seperti ketersediaan jaringan dan daya baterai yang tersisa. Tugas yang tidak harus dijalankan pada waktu yang tepat dapat dikategorikan sebagai ditangguhkan.

Solusi yang direkomendasikan
Bagian berikut ini menjelaskan solusi yang direkomendasikan untuk setiap jenis tugas latar belakang.
Tugas segera
Sebaiknya gunakan coroutine Kotlin untuk tugas yang harus
berakhir saat pengguna keluar dari cakupan tertentu atau menyelesaikan interaksi.
Banyak library Android KTX yang memuat cakupan coroutine siap pakai
untuk komponen aplikasi umum seperti
ViewModel
dan
siklus proses
aplikasi umum.
Untuk pengguna bahasa pemrograman Java, lihat Menggunakan thread di Android untuk opsi yang direkomendasikan.
Untuk tugas yang harus segera dijalankan dan memerlukan pemrosesan berkelanjutan,
meskipun pengguna menempatkan aplikasi di latar belakang atau perangkat dimulai ulang,
sebaiknya gunakan WorkManager
dan dukungannya untuk tugas yang berjalan lama.
Dalam kasus tertentu, misalnya pemutaran media atau navigasi aktif, Anda dapat menggunakan Layanan latar depan secara langsung.
Tugas yang ditangguhkan
Setiap tugas yang tidak terhubung langsung ke interaksi pengguna dan dapat dijalankan kapan saja di masa mendatang dapat ditangguhkan. Solusi yang direkomendasikan untuk tugas yang ditangguhkan adalah WorkManager
.
WorkManager
memudahkan penjadwalan tugas asinkron yang dapat ditangguhkan dan
diperkirakan akan berjalan meskipun aplikasi ditutup atau perangkat dimulai ulang. Lihat
dokumentasi untuk WorkManager
guna mempelajari cara menjadwalkan jenis tugas ini.
Tugas tepat waktu
Tugas yang harus dijalankan pada waktu yang tepat dapat menggunakan
AlarmManager
.
Untuk mempelajari AlarmManager
lebih lanjut, lihat
Menjadwalkan alarm berulang.