android - IllegalStateException on closed Cursor -


मेरा प्रश्न निम्न प्रश्न से जुड़ा हुआ है:

अपमानजनक विधि के लिए कोड निम्नानुसार है:

  सार्वजनिक बूलियन स्थायी है (स्ट्रिंग स्क्रीन_नाम) {बूलियन आउटपुट = false; {Cursor c = mDb.query (USERS, नया स्ट्रिंग [] {PERMANENT}, NAME + "= '" + screen_name + "' ', null, null, null, null) का प्रयास करें; यदि (सी! = नल & amp; amp; amp; c.getCount () & gt; 0) {c.moveToFirst (); आउटपुट = c.getString (0) .contentEquals ("C"); c.close (); }} पकड़ (अपवाद ई) {Log.e ("डीबीआरआर", ई.जेट मेसेज ()); } वापसी आउटपुट; }  

हालांकि, मैं अपवाद को फेंका गया है जब मैं सवाल में कर्सर देख रहा हूँ, मैं ग्रहण में निम्नलिखित देख सकते हैं:

  इस SQLitecursor (id = 830061188288) सच mColumnNameMap अशक्त mClosed mColumns स्ट्रिंग [1] (आईडी = 830,061,188,608) mContentObservable ContentObservable (आईडी = 830,061,188,456) mContentResolver अशक्त mCount 0 mCurrentRowID अशक्त mCursorState 0 mDatabase SQLiteDatabase (आईडी = 830,060,407,768) mDataSetObservable DataSetObservable (आईडी = 830,061,188,408) mDriver SQLiteDirectCursorDriver (आईडी = 830061143904) mEditTable "उन" (आईडी = 830,060,403,008) mInitialRead 2147483647 mLock अशक्त mMaxRead 2147483647 mNotificationHandler अशक्त mNotifyUri अशक्त mPendingData झूठी mPOS -1 mQuery SQLiteQuery (आईडी = 830,061,143,936) mRowIdColumnIndex -1 mSelfObserver अशक्त mSelfObserverLock वस्तु (आईडी = 830,061,188,504) झूठी mStackTraceElements mSelfObserverRegistered अशक्त mUpd Atedrowshashmap (id = 830061144056) mWindow null  

और यह स्पष्ट रूप से दिखाता है कि कर्सर की स्थिति बंद हो गई है, जैसा कि ऐसा होना चाहिए - ऐसा किसी भी व्यक्ति के पास कोई भी संकेत है कि यह क्यों होना चाहिए अपवाद फेंक रहा है?

c.getCount ()> 0 की जांच के बजाय, c.moveToNext के लिए जांचें ( ):

  कोशिश {... if (c! = Null & amp; C.moveToNext ()) // तुम्हारा काम यहाँ है और धीरे-धीरे कॉल करें ()} अंत में {if (c! = Null) c.close (); }  

और अंत में बंद करें {}


Comments