पर सूचनाएं अक्षम करें मैं किसी दिए गए ContentProvider
के Uri
पर अधिसूचनाओं को निलंबित करने का एक तरीका ढूंढ रहा हूं। उपयोग मामला है:किसी सामग्री प्रदाता URI
- एक
Activity
एकCursorLoader
के माध्यम से एकCursorAdapter
के लिए बाध्य है। - ए
Service
ContentProvider
पर बहुत सारे बैच, सिंगल-पंक्ति अपडेट कर सकता है। CursorLoader
ContentProvider
ContentResolver#notifyChange
द्वारा श्रोताओं को सूचित करता है, प्रत्येक पंक्ति अद्यतन पर अपनी सामग्री को फिर से लोड करेगा।
जब से मैं ContentProvider
संपादित नहीं कर सकते, और मैं बैच प्रश्नों निष्पादन पर कोई नियंत्रण नहीं है, वहाँ ContentProvider
प्रबंधित सभी जिज्ञासाओं के जब तक एक Uri
पर सूचनाएं निलंबित करने के लिए (क्रियान्वित Service
में) एक तरह से किया गया है है मार डाला? मुझे CursorLoader
की निरंतर आवश्यकता के कारण झटके से बचने के लिए इसकी आवश्यकता है।
तरह दिखता है यह अधिकार प्राप्त करने के लिए: आप सेवा है और न ही सीपी से अधिक न प्रभाव है? यदि दूसरी ओर सेवा आपके नियंत्रण में है, तो कृपया आप किस प्रकार के सीपी अपडेट कर रहे हैं, इसके बारे में थोड़ा और विवरण दें। –
मैं एक सरल 'फॉर' लूप के अंदर "अद्यतन या INSERT" प्रकार की क्वेरी की एक श्रृंखला निष्पादित कर रहा हूं। मैं एक 'ContentProvider' का उपयोग कर रहा हूं जो प्रत्येक' सम्मिलित करें 'या' अपडेट' के बाद अधिसूचित करता है लेकिन, इस विशेष स्थिति में, मैं सभी सूचनाओं को तब तक निलंबित करने में सक्षम होना चाहता हूं जब तक कि मैं सभी संस्थाओं को अद्यतन नहीं कर लेता। – frapontillo
और भी विस्तृत होने के लिए, मैं निकोलस क्लेन (https: // github द्वारा जनरेटर के साथ अपना 'ContentProvider' उत्पन्न कर रहा हूं।कॉम/फॉक्सकीप/कंटेंटप्रोवाइडर कोड जेनरेटर) कि, 'अपडेट (उरी यूरी, कंटेंट वैल्यू वैल्यू, स्ट्रिंग सिलेक्शन, स्ट्रिंग [] चयन एआरजीएस) के अंत में,' एक सरल 'getContext() मिलता है। getContentResolver()। notifyChange (uri, null); '। – frapontillo