यह बहुत हद तक इस बात पर निर्भर करता है कि आपको किस तरह के सिंकिंग की ज़रूरत है।
सामयिक
यदि आपका ऐप एक समाचार ऐप है जो हर दिन एक निश्चित समय पर पोस्ट प्रकाशित करता है (हर दिन 7.45 बजे कहते हैं), तो आप एक पृष्ठभूमि सेवा में एक आवधिक कार्य चलाते हैं, 8 बजे कहते हैं।
जैसे : ड्रिपलर। वे हर दिन (लगभग 6.30 बजे) मुझे एक बार सूचित करते हैं। मेरा मानना है कि वे एक आवधिक कार्य का उपयोग करते हैं।
घटना की शुरुआत की गई
यदि आपका डेटा स्थानांतरण उपयोगकर्ता की कार्रवाई से चालू होता है, तो डेटा ट्रांसफर के लिए पृष्ठभूमि सेवा या AsyncTask का उपयोग करें।
उदाहरण : ड्रॉपबॉक्स / एवरनोट। जब मैं ऐप के साथ इंटरैक्ट करता हूं तो वे सिंक हो जाते हैं।
तात्कालिक
यदि आपका ऐप इंस्टेंट मैसेजिंग / मेल / नॉन-पीरियडिक महत्वपूर्ण अपडेट चलाता है , तो आपको पुश नोटिफिकेशन की आवश्यकता है, क्योंकि आप उपयोगकर्ता को तुरंत अलर्ट करना चाहते हैं। इस मामले के लिए या तो GCM या पार्स का उपयोग करें। उदाहरण: व्हाट्सएप / गूगल चैट। चूंकि आपने स्पष्ट रूप से उल्लेख किया है कि आप GCM का उपयोग नहीं करना चाहते हैं, इसलिए मैं बताऊंगा कि आपको अपना लिखने के बजाय मानक पुश सूचना प्रदाता का उपयोग क्यों करना चाहिए :
पुश सूचनाएं तुरंत काम करती हैं - बहुत कम देरी होती है (सेकंड के क्रम में, शायद ही कभी मिनट)। यदि आप ऐसा करने के लिए अपने स्वयं के समाधान / पुस्तकालय को लागू करने के लिए थे - एक भोले मॉडल में, आप स्थिति की जांच करने के लिए हर दूसरे या 5 सेकंड या एक मिनट में सर्वर को पिंग करेंगे। यह बहुत अक्षम है क्योंकि यह सीपीयू (और इसलिए बैटरी), मोबाइल पर बैंडविड्थ और आपके सर्वर पर लोड की खपत करता है। हालाँकि, GCM / Parse में, वे हमेशा सर्वर के साथ एक पोर्ट खुला रखते हैं ( यहाँ देखें )। यह मानक और सबसे कुशल तरीका है। साथ ही, यदि 10 ऐप्स GCM का उपयोग करते हैं, तो आपको 10 खुले कनेक्शन की आवश्यकता नहीं है, आपको केवल एक डिवाइस की आवश्यकता है। और आप वास्तव में अपना समाधान विकसित नहीं करना चाहते हैं जब तक कि आपके पास ऐसा करने के लिए कोई वैध कारण / धन / समय न हो।
सिंक एडॉप्टर पर एक नोट : सिंक एडॉप्टर उपरोक्त सभी तीन मामलों के लिए अच्छी तरह से काम करता है। एक सिंक एडप्टर चलाने की जाँच करें और आप देखेंगे कि यह या तो जीसीएम या आपके स्वयं के तंत्र (ईवेंट ट्रिगर या कस्टम समाधान) या नेटवर्क उपलब्धता (ईवेंट ट्रिगर) या आवधिक घटना पर निर्भर करता है। सभी के सभी, यह हर बार इनिशियलाइज़ेशन की एक लंबी सूची के बिना या एक ही स्थान पर उपरोक्त सभी मामलों को लागू करने के लिए डेटा को सिंक्रनाइज़ करने के लिए एक अच्छा सुविधाजनक वर्ग है।