क्या सामग्री प्रदाताओं के रूप में सेवाओं के साथ बातचीत करने के कुछ तरीके हैं?सेवाओं के साथ बातचीत करने के लिए सरल तरीके?
मेरा मतलब है, उदाहरण के लिए सामग्री प्रदाताओं के साथ हमारे पास getContentResolver()
है: यदि आपके पास Context
है तो डेटा से पूछना आसान है। आपको क्रॉस-प्रोसेस कॉल (ContentProvider
) के ब्योरे के बारे में भी चिंता करने की ज़रूरत नहीं है।
सेवाओं के साथ, आपको उन्हें बांधना होगा, कनेक्शन स्थापित होने की प्रतीक्षा करें, फिर अगर आप स्मृति को रिसाव नहीं करना चाहते हैं तो उन्हें बाध्य करना सुनिश्चित करें। इससे भी बदतर, आपको दूरस्थ सेवाओं के लिए AIDL से निपटना होगा।
इस उदाहरण ले रहा है:
मैं एक फ़ाइल डाउनलोडर मॉड्यूल है। वर्तमान में दो दृष्टिकोण हैं: सामग्री प्रदाता या सेवा। प्रत्येक नए डाउनलोड को शुरू करने के लिए, यह दोनों के लिए आसान है:
- सेवा:
startService()
। आपको बस एक संदर्भ की आवश्यकता है। - सामग्री प्रदाता:
getContentResolver()
और अपनी कतार में नया डाउनलोड डालें। आपको बस एक संदर्भ की आवश्यकता है।
लेकिन जब डाउनलोड प्रगति पर है, तो मैं कुछ जानकारी (औसत गति, प्रतिशत किया गया ...) प्राप्त करना चाहता हूं। समस्या यहां है: एक सामग्री प्रदाता के साथ संवाद करने के लिए और अधिक आसान है। फिर आपको केवल एक संदर्भ की आवश्यकता है और जो जानकारी आप चाहते हैं उसे पूछें। किसी सेवा के मामले में, आपको इसे बाध्य करने, इसे अनइंड करने, या अपना स्वयं का एड्स बनाने की आवश्यकता है (यदि यह एक दूरस्थ सेवा है) ...
मैं इस प्रश्न से पूछ रहा हूं क्योंकि उपर्युक्त उदाहरण के साथ, एक सेवा सही है कम से कम इसके नाम के कारण, एक सामग्री प्रदाता पर दृष्टिकोण।
धन्यवाद,
"औसत गति", "प्रतिशत पूर्ण" जानकारी के साथ आप क्या करने जा रहे हैं? – Squonk
@Squonk मैं यूआई में उन्हें यूजर में दिखाना चाहता हूं यदि उपयोगकर्ता जानना चाहता है। –