मेरी गतिविधि एसडी कार्ड पर सभी छवियों को प्राप्त करने के लिए इस कोड को शामिल असमर्थ:फिर से शुरू करने गतिविधि त्रुटि
String[] projection = {MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA,
MediaStore.Images.ImageColumns.DATA};
Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection, null, null,
MediaStore.Images.Media._ID);
int count = cursor.getCount();
int image_path_index = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
int i;
for(i = 0; i < count; i++) {
cursor.moveToPosition(i);
String p = cursor.getString(image_path_index);
fd.addToPhonePhoto(p);
}
cursor.close();
उस समय हुई जब गतिविधि शुरू करने गया था:
03-14 14:06: 48.380: ई/एंड्रॉइड रनटाइम (20793): java.lang.RuntimeException: गतिविधि को फिर से शुरू करने में असमर्थ {}: java.lang.RuntimeException: गतिविधि फिर से शुरू करने में असमर्थ {}: android.database.StaleDataException: कर्सर को एक्सेस करने के बाद इसे एक्सेस करने का प्रयास किया गया बन्द है।
यह केवल एंड्रॉइड 4.0 पर होता है। यदि एंड्रॉइड 2.x या 3.x पर है, तो यह सामान्य रूप से काम करता है। लेकिन अगर मैं सिस्टम सेटिंग बदलता हूं जो "डेवलपर विकल्प" में "क्रियाएँ न रखें" विकल्प का चयन करता है। त्रुटि नहीं दिखाती है।
मैं सिस्टम सेटिंग को बदलने के बिना इस त्रुटि से बचने के लिए अपना कोड संशोधित करना चाहता हूं। मैं इसे कैसे करूं?
आपका उत्तर सही है। लेकिन मेरी एक और गतिविधि में एक ही त्रुटि है। इस तरह का कोड http://stackoverflow.com/questions/9426170/why-the-cusor-null। अगर कर्सर.क्लोस() को कॉल नहीं किया गया है, तो कई लूप चलाने के दौरान चचेरे भाई शून्य हो जाएगा। इससे कैसे बचें? – brian
@brian शायद आपके अन्य प्रश्नों की समस्याएं आपके द्वारा किए जाने वाले संचालन के आकार की वजह से हैं। आप थंबनेल प्राप्त करने के लिए MediaStore.Images.Media' की पूर्ण क्वेरी करते हैं, और फिर थंबनेल प्राप्त करने के लिए कई सैकड़ों (या 1000 से अधिक) 'प्रबंधितQuery'' बनाते हैं (यदि आप चाहते हैं कि थंबनेल आपको 'मीडियास्टोर' से पूछताछ न करे इमेज। थंबनेल 'contentprovider?)। इसके अलावा आप कहते हैं कि कर्सर कभी-कभी शून्य होता है, लेकिन कर्सर पर बंद नहीं होने पर 'NullPointerException' फेंक दिया जाता है? – Luksprog
उदाहरण के लिए, मेरे पास 2000 फोटो है। 1 से 1000 कामों के लिए लूप के लिए लेकिन 1000 से अधिक शून्य हो जाएगा। यदि NullPointerException का उपयोग कर सकते हैं तो कई फ़ोटो खुली नहीं हो सकती हैं। – brian