8

मेरा ऐप लोगों को उनके डेटा का उपयोग करने और प्रबंधित करने की इजाजत देता है, भले ही वे लॉग इन हों। हालांकि, जैसा कि मैं प्रत्येक डिवाइस को विशिष्ट रूप से पहचानता हूं, मैं अपने अज्ञात उपयोगकर्ताओं (लॉग इन नहीं) से डेटा सिंक करना चाहता हूं कुंआ। इसलिए, मैं सोच रहा था कि इस मामले में एक अनाम खाता बनाने का अच्छा अभ्यास है, क्योंकि सिंकएडाप्टर केवल खातों के साथ काम करते हैं।खाता बनाने के बिना सिंकएडाप्टर का उपयोग

क्या मुझे अपने अज्ञात उपयोगकर्ताओं के लिए खाता बनाना चाहिए या क्या मुझे अपने डेटा को थ्रेड/AsyncTasks/Loaders के साथ सिंक करना चाहिए? विशेष रूप से, क्या खाते की आवश्यकता के बिना ContentResolver.requestSync() काम करने का कोई तरीका है?

+1

मैं प्रमाणीकृत और अज्ञात उपयोगकर्ताओं दोनों के लिए समान सिंक्रनाइज़ेशन प्रक्रिया का उपयोग करने की अनुशंसा करता हूं। requestSync को एक खाता की आवश्यकता है। यदि आप इसका उपयोग करना चाहते हैं, तो एक अनाम खाता बनाएं। – njzk2

उत्तर

5

एंड्रॉइड में SyncAdapter/AccountManager का उपयोग करना इसके लायक होने की तुलना में स्पष्ट रूप से अधिक परेशानी है। उस विशिष्ट पैटर्न का सबसे अच्छा उपयोग तब किया जाता है जब आप बड़ी संख्या में अन्य एप्लिकेशन अपने खाता डेटा (जैसे ट्विटर या फेसबुक) साझा करना चाहते हैं।

मैं सुझाव देता हूं कि आप अपनी सिंक्रनाइज़ेशन करने के लिए बस अपनी खुद की पृष्ठभूमि Service कार्यान्वयन लिखें। समय-समय पर सिंक करने के लिए सेवा को सूचित करने के लिए आप AlarmManager का उपयोग कर सकते हैं। अन्यथा, जब आप मूल AsyncTask का उपयोग कर अपना एप्लिकेशन खोलते हैं तो आप बस सिंक कर सकते हैं।

+0

+1 मुझे पैटर्न की मदद से पैटर्न अधिक प्रतिबंधित है। –

+0

मैं विश्वास कर सकता हूं कि सिंकएडाप्टर/खाता प्रबंधक का उपयोग करना इससे अधिक परेशानी है, इस बात पर विचार करना कि एक सामान्य कार्य कुछ सर्वर के संसाधनों के कैशिंग प्रस्तुतिकरणों पर विचार कर रहा है .... लेकिन क्या यह आपकी खुद की सेवा लिखने से वास्तव में अधिक परेशानी है? –

संबंधित मुद्दे