Alternatif untuk layanan latar depan sinkronisasi data

Sering kali ada alternatif yang lebih baik untuk digunakan daripada layanan latar depan dataSync. Dokumen ini membantu Anda menemukan alternatif terbaik untuk kasus penggunaan Anda.

Kasus penggunaan migrasi

Bagian ini menjelaskan beberapa situasi umum saat aplikasi mungkin saat ini menggunakan layanan latar depan dataSync, dan alternatif yang kami rekomendasikan.

Mentransfer data melalui jaringan
Jika transfer dimulai oleh pengguna dan Anda perlu memberi tahu pengguna tentang progres transfer, gunakan API transfer data yang dimulai oleh pengguna. Jika tidak, gunakan WorkManager.
Mentransfer data ke atau dari perangkat lokal
Gunakan API tertentu jika tersedia (seperti pengelola perangkat pendamping); jika tidak, gunakan layanan latar depan connectedDevice.
Melakukan transcoding media
Gunakan jenis layanan latar depan mediaProcessing yang baru.
Menyelesaikan tugas singkat yang penting
Gunakan layanan latar depan shortService.
Memproses file (misalnya, mentransfer data ke atau dari kartu SD, mengubah ukuran konten, atau mengenkripsi atau mendekripsi data)
Jika tugas dapat selesai dalam waktu kurang dari tiga menit, gunakan layanan latar depan shortService. Jika tidak, gunakan WorkManager.

Menggunakan API transfer data yang dimulai oleh pengguna

Jika aplikasi Anda perlu mentransfer data ke server jarak jauh, Anda dapat menggunakan API transfer data yang dimulai oleh pengguna yang baru. API ini akan sesuai jika hal berikut berlaku:

  • Pengguna memulai transfer data
  • Anda harus terus memberi tahu pengguna tentang progres transfer data
  • Hal ini merugikan pengalaman pengguna jika sistem mengganggu transfer

Jika salah satu kondisi ini tidak terpenuhi, sebaiknya Anda menggunakan WorkManager.

Misalnya, aplikasi media dapat mengizinkan pengguna mendownload album untuk diputar secara lokal. Jika pengguna ingin mendownload playlist dan langsung memutarnya, Anda dapat menggunakan API transfer data yang dimulai oleh pengguna. Di sisi lain, jika pengguna ingin playlist yang didownload diperbarui secara berkala di latar belakang tanpa inisiasi pengguna, WorkManager akan menjadi pilihan yang lebih baik.

Untuk informasi selengkapnya, lihat dokumentasi tentang memigrasikan layanan latar depan ke tugas transfer data yang dimulai pengguna.

Menggunakan WorkManager

Dalam sebagian besar kasus, WorkManager adalah opsi terbaik saat Anda perlu menjadwalkan pekerjaan. Anda harus mendesain tugas sedemikian rupa sehingga dapat diputus atau ditangguhkan oleh sistem. Untuk mengetahui informasi selengkapnya, lihat dokumentasi WorkManager.

Berikut adalah beberapa catatan yang mungkin berguna saat Anda bermigrasi dari layanan latar depan ke WorkManager:

  • Jika perlu menjalankan pekerjaan tersebut sesegera mungkin, Anda dapat menjadwalkan permintaan pekerjaan yang diprioritaskan. Opsi ini sangat berguna jika Anda menjadwalkan pekerjaan sebagai respons terhadap pesan siaran, alarm persis, atau pesan FCM prioritas tinggi.
  • Jika ingin menjalankan tugas secara berkala, Anda dapat menjadwalkan pekerjaan berkala. Permintaan pekerjaan berkala memungkinkan Anda menentukan secara kasar seberapa sering pekerjaan akan berjalan, tetapi tidak menjamin waktu tertentu. Hal ini memungkinkan sistem menjadwalkan permintaan kerja dari aplikasi yang berbeda untuk menyeimbangkan tuntutan pada perangkat.
  • Anda harus menentukan batasan kerja untuk menentukan kondisi yang tepat untuk menjalankan tugas. Misalnya, jika aplikasi perlu mendownload resource yang tidak mendesak, Anda dapat menentukan bahwa tugas harus dijalankan saat perangkat sedang mengisi daya dan terhubung ke jaringan yang tidak berbayar. WorkManager kemudian dapat menjalankan tugas Anda pada saat yang menyeimbangkan beban pada sistem.
  • WorkManager bebas biaya untuk membatalkan dan mencoba lagi tugas jika perlu. Misalnya, pengguna dapat mematikan perangkat saat tugas sedang berjalan; sistem kemudian dapat mencoba kembali tugas tersebut saat perangkat tersedia lagi. Pastikan Anda mendesain dan menguji alur kerja untuk memastikan siklus pembatalan dan percobaan ulang berfungsi dengan benar.

Menggunakan jenis layanan latar depan yang lebih spesifik

Jika tidak dapat beralih ke cara lain untuk melakukan pekerjaan latar belakang, Anda mungkin masih perlu menggunakan layanan latar depan. Dalam hal ini, sebaiknya temukan jenis layanan yang sesuai untuk digunakan, bukan dataSync. Karena kode Anda sudah menggunakan layanan latar depan, migrasi ini dapat dilakukan dengan mudah; Anda hanya perlu memilih jenis layanan latar depan yang sesuai, dan memastikan aplikasi Anda memenuhi persyaratan layanan tersebut.

Seperti biasa, saat mempertimbangkan untuk menggunakan layanan latar depan, Anda harus mempertimbangkan apakah ada API alternatif yang lebih baik dan disesuaikan dengan kasus penggunaan Anda.

Menggunakan layanan latar depan layanan singkat

Jika aplikasi Anda perlu menjalankan tugas singkat yang penting, layanan latar depan shortService mungkin merupakan opsi terbaik. Berikut adalah beberapa situasi saat layanan latar depan shortService mungkin sesuai:

  • Pengguna memulai tindakan (seperti menyinkronkan data ke server) dan Anda ingin memastikan bahwa operasi telah selesai meskipun pengguna segera mengirim aplikasi ke latar belakang.
  • Menyimpan informasi dalam memori ke penyimpanan persisten.
  • Mengenkripsi atau mendekripsi informasi.

Untuk informasi selengkapnya, lihat dokumentasi shortService.

Menggunakan layanan latar depan perangkat yang terhubung

Jika perlu mentransfer data ke perangkat lokal lain, Anda dapat menggunakan layanan latar depan connectedDevice. Berikut beberapa situasi umum saat Anda mungkin perlu melakukan tindakan ini:

  • Berkomunikasi dengan aksesori Bluetooth, seperti headphone atau smartwatch
  • Mentransfer data ke perangkat yang terhubung secara lokal, dengan koneksi USB, NFC, atau koneksi internet lokal

Namun, dalam situasi ini, Anda mungkin dapat menggunakan pengelola perangkat pendamping untuk terhubung dengan perangkat, bukan menggunakan layanan latar depan. Seperti biasa, jika API tujuan khusus tersedia untuk kasus penggunaan Anda, itu biasanya menjadi pilihan yang lebih baik daripada menggunakan layanan latar depan.

Menggunakan layanan latar depan pemrosesan media baru

Jika perlu memproses data media, Anda dapat menggunakan layanan latar depan mediaProcessing yang baru. Jenis layanan ini tersedia jika aplikasi Anda menargetkan Android 15 atau yang lebih tinggi. Misalnya, jenis layanan ini sesuai jika aplikasi Anda perlu melakukan transcoding media dari satu format ke format lainnya untuk diputar. Untuk mengetahui informasi selengkapnya, lihat dokumentasi layanan latar depan pemrosesan media.

Referensi tambahan

Untuk mengetahui informasi selengkapnya tentang perubahan pada layanan latar depan ini, lihat referensi tambahan berikut: