2013-07-26 12 views
6

क्या आप मुझे बता सकते हैं कि एंड्रॉइड में सिंक्रनाइज़ेशन जॉब्स करने का सही तरीका क्या है (उदाहरण के लिए यदि मेरे पास 5 नौकरियां हैं)?
नोट! तुल्यकालन काम करके मैं अधिक जानकारी के लिए एक धागा जो पृष्ठभूमि में चलता है और (उदाहरण के लिए एनालिटिक्स) एक वेब सेवा के माध्यम से कुछ डेटा भेजता है ...वेब सेवा के साथ सिंक्रनाइज़ेशन के लिए एंड्रॉइड पृष्ठभूमि नौकरियां

मतलब कृपया एक अधिक विस्तृत विवरण पढ़ें:

मुझे मिल गया है एक कुछ पृष्ठभूमि नौकरियों को लागू करने का कार्य जो कुछ डेटा को एक आरामदायक वेब सेवा के साथ सिंक्रनाइज़ करेगा। कुछ नौकरियां समय-समय पर एक विशिष्ट विलंब के साथ निर्धारित की जानी चाहिए। यदि कोई इंटरनेट कनेक्शन नहीं है तो मैं डेटा को कैश करता हूं और बाद में जब कनेक्शन फिर से दिखाई देता है तो मैं नौकरियों को चलाने की कोशिश करता हूं। इस बात को ध्यान में रखते हुए कि नए धागे बनाना काफी महंगा है और विशेष रूप से मोबाइल विकास पर, मैं एक कैश किए गए थ्रेड पूल (एक्जिक्यूटर्स सर्विस) का उपयोग कर रहा हूं और हर बार प्रोसेसिंग के लिए कुछ कार्रवाइयों का अनुरोध किया जाता है, मैं धागे का पुन: उपयोग करने की कोशिश कर रहा हूं। मैं AsyncTask का उपयोग नहीं करता क्योंकि मैंने इसे इस निष्पादक सेवा (execors.newCachedTreadPool) के साथ बदल दिया है और यह मेरे लिए सुविधाजनक है क्योंकि मुझे कई AsyncTasks बनाने की आवश्यकता नहीं है क्योंकि मैं ईएस से धागे का पुन: उपयोग करता हूं ... समर्थन के लिए निर्धारित नौकरियां, मैं एक और थ्रेड पूल (शेड्यूल्डएक्ससेटर्स सेवा) का उपयोग करता हूं और कॉलबल का उपयोग करता हूं क्योंकि मुझे निष्पादन परिणाम देखने की आवश्यकता है। मुझे यहां एक जटिल तर्क मिला है ... इसलिए, जब ऐप में कोई विशेष कार्रवाई की जाती है, तो पहला थ्रेड पूल (AsyncTask की तरह) एक AsyncTask की तरह काम करेगा, लाभ यह है कि मैं नए धागे नहीं बनाता लेकिन मैं उन्हें पुन: उपयोग करता हूं। यह यूआई के मुख्य धागे को अवरुद्ध नहीं करेगा। यह निर्धारित कार्यकर्ता को सौंपेगा जो अपना काम करेगा। यह समाधान काम करता है। और यह मेरे लिए अच्छा लगता है क्योंकि मैं सर्वर से आ रहा हूं, लेकिन मुझे यह जानने में दिलचस्पी है कि एंड्रॉइड पर यह कैसे किया जाना चाहिए? क्या यह मोबाइल ऐप के लिए भी परिष्कृत है? मेर्सी, सर्ज

उत्तर

10

सिंक एडाप्टर का उपयोग करें। http://developer.android.com/training/sync-adapters/index.html देखें। एक सिंक एडाप्टर पृष्ठभूमि में चलता है, यह सिस्टम द्वारा प्रबंधित किया जाता है, और कुशलता से निर्धारित किया जाता है ताकि आपकी सिंक बैटरी पावर को बर्बाद न करे। सबसे अच्छा, सिस्टम स्वचालित रूप से नेटवर्क कनेक्टिविटी का पता लगाएगा और यदि आवश्यक हो तो अपने सिंक एडाप्टर को कतारबद्ध कर देगा। यदि आप चाहते हैं, तो आप एकाधिक सिंक एडाप्टर का उपयोग कर सकते हैं।

ध्यान दें कि हालांकि यह लगता है जो सिंक एडाप्टर को सामग्री प्रदाता और एक प्रामाणिककर्ता की आवश्यकता होती है, वे वास्तव में नहीं करते हैं।

+0

धन्यवाद जो, आपका उत्तर वास्तव में सहायक है। मैंने लेख पढ़ा है और मैं सिंक एडाप्टर का उपयोग करने जा रहा हूं। ऐसा लगता है कि मैं यही देख रहा था ... बहुत धन्यवाद। – Serge

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