मैं वर्तमान में भारी संशोधित कर रहा हूँ/एक Android ऐप्लिकेशन फिर से लिखने और मैं निम्नलिखित लाइनों के साथ एक बहुत ही सामयिक दुर्घटना को देखा है: एक CursorAdapter
विधि कहा जाता है, यह AbstractWindowedCursor#checkPosition()
कहता है, और:कर्सर.क्लोज़() को समय-समय पर कॉल करने के अलावा StaleDataException का कारण क्या हो सकता है?
02-20 15:03:18.180 E/AndroidRuntime(17143): android.database.StaleDataException: Attempting to access a closed CursorWindow.Most probable cause: cursor is deactivated prior to calling this method.
02-20 15:03:18.180 E/AndroidRuntime(17143): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:139)
02-20 15:03:18.180 E/AndroidRuntime(17143): at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:74)
02-20 15:03:18.180 E/AndroidRuntime(17143): at android.database.CursorWrapper.getLong(CursorWrapper.java:106)
02-20 15:03:18.180 E/AndroidRuntime(17143): at android.widget.CursorAdapter.getItemId(CursorAdapter.java:220)
मुसीबत, है हम 'Cursor
एस बंद नहीं कर रहा है। हमारे सभी Cursor
एस CursorLoader
से आते हैं और बदले में ContentProvider
द्वारा उत्पादित किए जाते हैं। हम LoaderCallbacks
से प्रत्येक संबंधित CursorAdapter
में Cursor
गुजर रहे हैं, हम ContentProvider
में सूचनाओं के लिए Cursor
पंजीकृत कर रहे हैं, हम कर रहे हैं ContentResolver
प्रत्येक insert(...)
, delete(...)
और update(...)
से अधिसूचित करने ... संक्षेप में मैं नहीं कर सकता किसी भी कारण का पता लगाएं कि उपयोग में रहते समय Cursor
बंद हो जाएगा।
तो अन्यStaleDataException
के कारण क्या हैं?
यह आप के बाद से समय हो गया है पूछा, लेकिन ... क्या किसी भी अवसर से फ़िल्टरक्वायरवाइडर शामिल था? –
अरे एंड्रयू! क्या आप समाधान को समझने में सक्षम थे? – TheLittleNaruto