1 Cursor cursor = contentResolver.query(MY_URI, new String[] { \"first\" }, null, null, null);
2 if (cursor != null) {
3 if (cursor.moveToFirst()) {
4 first
Try out this way:
if (cursor != null) { cursor.moveToFirst(); do { first = cursor.getString(cursor.getColumnIndex("first")); }while(cursor.moveToNext());
}
I suspect the error may be related to you not closing your cursors properly all the time. Try:
Cursor cursor = contentResolver.query(MY_URI, new String[] { "first" }, null, null, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
first = cursor.getString(cursor.getColumnIndex("first"));
}
cursor.close(); ///// Changed here
}
The cursor should always be closed (regardless of whether or not its empty). Make sure the rest of your app is doing this as well.
Try another thread
new Thread(new Runnable(){ public void run(){
...here all code
}});
. But by Android SDK source codes look like 4.0.2_r1
130 private CursorWindow(Parcel source) {where mWIndowPtr is Int
131 mStartPos = source.readInt();
132 mWindowPtr = nativeCreateFromParcel(source);
133 if (mWindowPtr == 0) {
134 throw new CursorWindowAllocationException("Cursor window could not be "
135 + "created from binder.");
136 }
137 mName = nativeGetName(mWindowPtr);
138 mCloseGuard.open("close");
139 }