Qualcuno ha capito come utilizzare SQLiteDatabase.CursorFactory
su Android? Sto cercando di ottenere un oggetto SQLiteCursor persistente che utilizza un'istruzione SQL SELECT in cui molte delle espressioni della clausola WHERE utilizzano parametri che possono essere modificati a livello di codice prima della richiesta.Come utilizzare SQLiteDatabase.CursorFactory
Per esempio:
SELECT LocationID FROM Locations WHERE Latitude < northlimit AND Latitude > southlimit AND Longitude < eastlimit AND Longitude > westlimit;
parametri limite cambieranno dinamicamente, una volta ogni 200 ms
Sto provando a risolvere un problema per cui se mi basta usare SQLiteDatabase.rawQuery("SELECT ...");
Il sistema crea un nuovo CursorWindow per ogni nuova query , in definitiva a corto di memoria. Quindi sto cercando di trovare un modo per forzare il sistema a non creare nuovi CursorWindows.
Prima di ri-interrogare è necessario chiudere il vecchio cursore. In questo modo non dovresti esaurire la memoria. Per quanto ne so SQLite non supporta l'accesso casuale alle righe sui set di risultati della query. È possibile solo iterare un risultato SQLite dall'inizio alla fine. Il framework Android risolve il problema caricando l'intero risultato in un cursore per consentire l'accesso casuale. Se la tua query restituisce molte righe (o molti dati), potresti anche incorrere in una situazione di memoria insufficiente. – tiguchi