1 Cursor cursor = contentResolver.query(MY_URI, new String[] { "first" }, null, null, null);
2 if (cursor != null) {
3 if (cursor.moveToFirst()) {
4 first = cursor.getString(cursor.getColumnIndex("first"));
5 cursor.close();
6 }
7 }
Poi sulla linea # 3 (secondo i registri), io ogni tanto mi imbatto in questa eccezione (estratto qui di seguito):finestra del cursore non può essere creata da legante
android.database.CursorWindowAllocationException: Cursor window could not be created from binder.
at android.database.CursorWindow.<init>(CursorWindow.java:134)
at android.database.CursorWindow.<init>(CursorWindow.java:41)
at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:709)
at android.database.CursorWindow$1.createFromParcel(CursorWindow.java:707)
at android.database.CursorWindow.newFromParcel(CursorWindow.java:718)
at android.database.BulkCursorProxy.getWindow(BulkCursorNative.java:196)
..
Qualche idea del motivo per cui questa eccezione viene lanciata? Grazie!
provare questo [link] (http://stackoverflow.com/questions/5288384/android-content- resolver-query-return-0-rows-when-it-should-not-too) –
Quante righe sono nel database che supporta il 'ContentResolver'? Questa eccezione viene generata se il cursore non riesce a allocare spazio sufficiente per memorizzare i dati necessari. Dato che non stai limitando il numero di righe nella tua query tramite gli argomenti di selezione, il 'cursore' assegnerà lo spazio per mantenere una copia di tutta la colonna' prima' nella memoria. Se esiste un numero elevato di righe, potenzialmente il processo potrebbe non riuscire ad allocare quella memoria. – iagreen
@iagreen, c'è solo una riga per cui non ho fatto un ciclo per questo. – lorraine