Ne tür bir senkronizasyon gerektiğine bağlıdır.
Periyodik
Uygulamanız, her gün belirli bir saatte yayınlar yayınlayan bir haber uygulamasıysa (her gün saat 7.45'te diyelim), arka plan hizmetinde periyodik bir görev yürütüyorsunuz, saat 8: 00'de.
örn . : Drippler. Bana günde bir kez haber veriyorlar (akşam 6.30 civarında). Periyodik bir görev kullandıklarına inanıyorum.
Olay tetiklendi
Veri aktarımınız kullanıcı eylemi tarafından tetiklenirse, veri aktarımı için bir arka plan servisi veya bir AsyncTask kullanın.
örneğin : DropBox / Evernote. Uygulamayla etkileşime girdiğimde senkronize oluyorlar.
ani
Uygulamanız anında mesajlaşma / postalar / periyodik olmayan önemli güncellemeler çalıştırıyorsa, kullanıcıyı derhal uyarmak istediğiniz için push bildirimlerine ihtiyacınız vardır. Bu durumda GCM veya Ayrıştırma'yı kullanın. örneğin: WhatsApp / Google sohbeti. GCM'yi kullanmak istemediğinizi açıkça belirttiğinizden, neden kendi mesajınızı yazmak yerine standart bir push bildirim sağlayıcısı kullanmanız gerektiğini anlatacağım :
Anında bildirimler anında çalışır - çok az bir gecikme olur (saniye cinsinden, nadiren dakikalar halinde). Bunu yapmak için kendi çözümünüzü / kitaplığınızı uygulayacak olsaydınız - naif bir modelde, durumu kontrol etmek için sunucuya her saniye veya 5 saniyede bir veya bir dakikada ping işlemi yapardınız. Bu işlem CPU (ve dolayısıyla pili), cep telefonundaki bant genişliğini ve sunucunuzu yüklediği için çok fazla verimsizdir. Ancak, GCM / Ayrıştırmada, her zaman bir bağlantı noktasını sunucuyla açık tutarlar ( buraya bakın ). Bu standart ve en verimli yoldur. Ayrıca, 10 uygulama GCM kullanıyorsa, 10 açık bağlantıya gerek yoktur, her cihaz için yalnızca bir tane gerekir. Ve geçerli bir neden / fon / zamanınız olmadıkça, kendi çözümünüzü geliştirmek istemezsiniz.
Eşitleme Bağdaştırıcısı ile ilgili bir not : Eşitleme Bağdaştırıcısı, yukarıdaki üç durumun tümü için iyi sonuç verir. Kontrol Bir Sync Adaptörü Koşu ve bunu ya GCM veya kendi mekanizması (olay tetikleyici veya özel çözüm) veya ağ kullanılabilirlik (olay tetikleyici) veya periyodik olay bağlı olduğunu göreceksiniz. Sonuç olarak, bu, her seferinde uzun bir başlatma listesi yapmak zorunda kalmadan veri senkronizasyonu veya yukarıdaki tüm durumları tek bir yerde uygulamak için uygun bir sınıftır.