Ini sangat tergantung pada jenis sinkronisasi yang Anda butuhkan.
Berkala
Jika aplikasi Anda adalah aplikasi berita yang mempublikasikan posting pada waktu tertentu setiap hari (misalkan jam 7.45 pagi setiap hari), maka Anda menjalankan tugas periodik di layanan latar belakang, katakan jam 8 pagi.
misal : Drippler. Mereka memberi tahu saya sekali setiap hari (sekitar jam 6.30 sore). Saya percaya mereka menggunakan tugas berkala.
Acara Dipicu
Jika transfer data Anda dipicu oleh tindakan pengguna, maka gunakan layanan latar belakang atau AsyncTask untuk transfer data.
misal : DropBox / Evernote. Mereka menyinkronkan ketika saya berinteraksi dengan aplikasi.
Seketika
Jika aplikasi Anda menjalankan olahpesan cepat / mail / pembaruan penting non-periodik , maka Anda perlu pemberitahuan push, karena Anda ingin segera memperingatkan pengguna. Gunakan GCM atau Parse untuk kasus ini. misalnya: WhatsApp / Google chat. Karena Anda menyebutkan secara eksplisit bahwa Anda tidak ingin menggunakan GCM, saya akan memberi tahu mengapa Anda harus menggunakan penyedia pemberitahuan push standar alih-alih menulis sendiri:
Pemberitahuan push berfungsi secara instan - hanya ada sedikit keterlambatan (dalam urutan detik, jarang menit). Jika Anda mengimplementasikan solusi / pustaka Anda sendiri untuk melakukan ini - dalam model naif, Anda akan melakukan ping server setiap detik atau 5 detik atau satu menit untuk memeriksa status. Ini sangat tidak efisien karena mengkonsumsi CPU (dan karenanya baterai), bandwidth pada ponsel dan memuat pada server Anda. Namun, dalam GCM / Parse, mereka selalu menjaga port terbuka dengan server (lihat di sini ). Ini adalah cara standar dan paling efisien. Plus, jika 10 aplikasi menggunakan GCM, Anda tidak perlu 10 koneksi terbuka, Anda hanya perlu satu per perangkat. Dan Anda benar-benar tidak ingin mengembangkan solusi Anda sendiri kecuali Anda memiliki alasan / dana / waktu yang valid untuk melakukannya.
Catatan tentang Sync Adapter : Sync Adapter berfungsi dengan baik untuk ketiga kasus di atas. Periksa Menjalankan Adaptor Sinkronisasi dan Anda akan melihat bahwa itu tergantung pada GCM atau mekanisme Anda sendiri (pemicu acara atau solusi khusus) atau ketersediaan jaringan (pemicu acara) atau peristiwa berkala. Secara keseluruhan, ini adalah kelas praktis yang baik untuk menyinkronkan data tanpa harus melakukan daftar panjang inisialisasi setiap kali atau untuk menerapkan semua kasus di atas di satu tempat.