2013-02-24 50 views
6

मैं एंड्रॉयड की सामग्री प्रदाताओं से आधिकारिक दस्तावेज पढ़ रहा हूँ और मैं इस देखा है: यदि आप एक सामग्री प्रदाता की जरूरतक्या मुझे सामग्री प्रदाता का उपयोग करना चाहिए?

तय करें।

आपको किसी सामग्री प्रदाता का निर्माण करने की आवश्यकता है यदि आप एक या निम्न सुविधाओं का अधिक प्रदान करना चाहते हैं:

  • आप अन्य अनुप्रयोगों के लिए जटिल डेटा या फ़ाइलों को प्रदान करना चाहते हैं।
  • आप उन अन्य क्षुधा में अपने एप्लिकेशन से जटिल डेटा की नकल करने की अनुमति देना चाहते।
  • आप खोज ढांचे का उपयोग कर कस्टम खोज सुझाव प्रदान करना चाहते हैं।
  • आप अगर उपयोग अपने आवेदन के भीतर पूरी तरह है एक SQLite डेटाबेस का उपयोग करने एक प्रदाता जरूरत नहीं है।

मैं एक ऐप्लिकेशन है जो पृष्ठभूमि पर डेटा सिंक करता है स्थिति एक IntentService के माध्यम से बदल जाता है जब विकासशील कर रहा हूँ।

क्या मैंने देखा है कि ContentProvider साथ आप जब डेटा परिवर्तन उपयोगकर्ता बिना जो मैं वास्तव में चाहते हैं कि उसे देख देख सकता है। IntentService और MainActivity में यह परिवर्तन इस परिवर्तन को देखता है और जब इसे अधिसूचित किया जाता है, लेआउट सामग्री बदलती है

क्या सामग्री प्रदाता का उपयोग करना एक अच्छा विचार है, हालांकि वे इसका भी उल्लेख नहीं करते हैं?

धन्यवाद

+0

[सामग्री प्रदाता का उपयोग कब करें] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/4936712/when-to-use-a-content-provider) –

उत्तर

13

व्यक्तिगत रूप से, मैं पिछले डेढ़ साल के लिए अपने सभी परियोजनाओं में ContentProviders उपयोग किया गया है। वे आपके डेटा तक पहुंचने के लिए अच्छा, डेटाबेस स्वतंत्र, डेटा अबास्ट्रक्शन प्रदान करते हैं। वे बहुत लचीले हैं, मेरे पास एक प्ले प्रोजेक्ट भी था जहां एक यूआरआई ने एक साझा प्रेफरेंस की ओर इशारा किया जबकि अन्य सभी डेटाबेस टेबल तक पहुंचने के लिए। ContentProviders आपको उदाहरण के लिए, कर्सर लोडर जैसे पहले से ही निर्मित फ्रेमवर्क आधारभूत संरचना का उपयोग करने की अनुमति देता है। इंटरफेस और अमूर्त वर्गों से अपनी खुद की को लागू करने कि मुश्किल नहीं है, लेकिन यह समय लगता है और त्रुटियों की संभावना हो सकती है, सिर्फ लाभ उठाने के लिए काम करने की कोशिश की है कि पहले से ही किया गया है और परीक्षण किया सक्षम होने के लिए एक महान लाभ है।

वैसे, मैं के बारे में 2 सप्ताह पहले गूगल + में एक पोस्ट पर एक ही सटीक सवाल जहां सिरिल Mottier एक बहुत अच्छा जवाब दिया याद है। आप इसे here पढ़ सकते हैं।