2013-07-10 9 views
21

मैं ContentProvider इंटरनेट प्रदर्शन को परिभाषित करने और एक ContentProvider का उपयोग कैसे करें के बारे में एक कोर्स देखा था।GetContentResolver() कैसे काम करता है?

मैं विधि getContentResolver() नामित का उपयोग कर के बारे में उलझन में था। यह विधि क्या लौटती है?

मेरा ContentProvider इंस्टेंट नहीं किया गया है और कोड सिर्फ getContentProvider().query() लिखता है।

मुझे समझ नहीं आता ContentProvider कैसे काम करता है।

+2

शायद यह स्रोतों में मदद मिलेगी में देख अप? – azizbekian

उत्तर

48

यह सामग्री रिज़ॉल्वर देता है।


सामग्री रिजॉल्वर क्या है?

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

सामग्री रिज़ॉल्वर CRUD (, बनाने, पढ़ने, अद्यतन हटाना) सामग्री प्रदाता कक्षा में सार विधियों (डालने, हटाने, क्वेरी, अद्यतन) के लिए इसी तरीके शामिल हैं। कंटेंट रिजॉल्वर उन सामग्री प्रदाताओं के कार्यान्वयन को नहीं जानता है जिनके साथ बातचीत कर रही है (न ही इसे जानने की आवश्यकता है); प्रत्येक विधि को एक यूआरआई पारित किया जाता है जो सामग्री प्रदाता से बातचीत करने के लिए निर्दिष्ट करता है।


सामग्री प्रदाता क्या है?

जबकि सामग्री रिजॉल्वर एप्लिकेशन के सामग्री प्रदाता से एक अमूर्त प्रदान करता है, सामग्री प्रदाता अंतर्निहित डेटा स्रोत (यानी SQLite database) से एक अमूर्त प्रदान करता है। वे डेटा सुरक्षा को परिभाषित करने के लिए तंत्र प्रदान करते हैं (यानी पढ़ने/लिखने की अनुमति लागू करके) और एक मानक इंटरफ़ेस प्रदान करते हैं जो एक प्रक्रिया में डेटा को किसी अन्य प्रक्रिया में चलने वाले कोड से जोड़ता है।

सामग्री प्रदाता, प्रकाशन और उपभोक्ता डेटा के लिए एक इंटरफेस प्रदान एक सरल यूआरआई को संबोधित मॉडल content:// schema का उपयोग कर के आसपास आधारित। वे अंतर्निहित डेटा स्रोतों को सारण करके, आपके एप्लिकेशन डेटा-स्रोत अज्ञेयवादी को अंतर्निहित डेटा परतों से आपकी एप्लिकेशन परतों को डीक्यूपल करने में सक्षम करते हैं।

स्रोत - androiddesignpatterns

+1

बहुत बहुत धन्यवाद – Kross

1

getContentResolver() एक ContentResolver उदाहरण आपके आवेदन के पैकेज के लिए वापस जाएँ।

developer.android.com से चिपकाने

सामग्री प्रदाताओं के डेटा का एक संरचित सेट करने के लिए उपयोग का प्रबंधन। वे डेटा को समाहित करते हैं, और डेटा सुरक्षा को परिभाषित करने के लिए तंत्र प्रदान करते हैं। सामग्री प्रदाता मानक इंटरफ़ेस हैं जो एक प्रक्रिया में डेटा को किसी अन्य प्रक्रिया में चलने वाले कोड से जोड़ता है।

जब आप किसी सामग्री प्रदाता में डेटा तक पहुंचना चाहते हैं, तो आप क्लाइंट के रूप में प्रदाता के साथ संवाद करने के लिए अपने एप्लिकेशन के संदर्भ में ContentResolver ऑब्जेक्ट का उपयोग करते हैं। ContentResolver ऑब्जेक्ट प्रदाता ऑब्जेक्ट के साथ संचार करता है, एक क्लास का उदाहरण जो ContentProvider लागू करता है। प्रदाता ऑब्जेक्ट क्लाइंट से डेटा अनुरोध प्राप्त करता है, अनुरोधित कार्रवाई करता है, और परिणाम देता है।

http://developer.android.com/guide/topics/providers/content-providers.html

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