android - डेटा बदलने के बाद CursorLoader अपडेट नहीं हो रहा है




android-contentprovider android-cursorloader (2)

मैंने एक छोटा अनुप्रयोग बनाया है, LoaderManager और CursorLoader -क्लासेस की कार्यक्षमता को समझने की कोशिश कर रहा हूं।

मैंने अपने FragmentActivity LoaderCallbacks<Cursor> पर LoaderCallbacks<Cursor> लागू किया है और सब कुछ ठीक है, इस तथ्य को छोड़कर कि जब मैं ContentResolver.update() या ContentResolver.insert() -methods, onLoadFinished() माध्यम से अपने डेटा को अपडेट नहीं किया जाता है और इसे कॉल नहीं किया जाता है। परिणाम मेरे डेटा अपडेट नहीं करता है।

मेरे पास एक कस्टम कन्टैंटप्रॉइडर है और मैं सोच रहा हूं कि क्या समस्या मेरे कॉन्टेंटप्रॉइडर में है जो यह सूचित नहीं कर रहे हैं कि डेटा बदल गया है या कुछ और।


क्या आपने ContentProvider.query() में लौटने से पहले Cursor पर setNotificationUri(ContentResolver cr, Uri uri) कॉल किया था?

और क्या आपने अपने ContentProvider के 'इन्सर्ट' विधि में getContext().getContentResolver().notifyChange(uri, null) को ContentProvider ?

संपादित करें:

अपने ContentProvider में एक ContentResolver कॉल getContext().getContentResolver() ContentProvider getContext().getContentResolver() प्राप्त करने के लिए।


यह भी जांचें कि क्या आप कहीं कर्सर कहते हैं। क्लोज़ (), क्योंकि इस मामले में आप उस कंटेंट ऑब्ज़र्वर को अनरजिस्टर्ड करते हैं जो CursorLoader द्वारा पंजीकृत किया गया था। और कर्सर समापन को CursorLoader द्वारा प्रबंधित किया जाता है।





android-loadermanager