Pessoal,
Estou tendo alguns problemas com finalização de banco ou de cursor (ainda não consegui identificar).
Acredito que o problema esteja nessa função, que seleciona todos e retorna um próprio cursor. Não posso fecha-lo antes de retorna-lo. Segue a função:
// Retorna um cursor com todos os registros
public Cursor getCursor() {
try {
// select * from registro
Cursor cursor = db.query(NOME_TABELA, Registro.COLUNAS, null, null, null, null, null, null);
return cursor;
} catch (SQLException e) {
Log.i(CATEGORIA, "Erro ao buscar os registros: " + e.toString());
return null;
}
}
E o log:
07-05 15:38:42.711: E/Database(3332): close() was never explicitly called on database '/data/data/com.gpslocator/databases/registros'
07-05 15:38:42.711: E/Database(3332): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
07-05 15:38:42.711: E/Database(3332): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1810)
07-05 15:38:42.711: E/Database(3332): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817)
07-05 15:38:42.711: E/Database(3332): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:851)
07-05 15:38:42.711: E/Database(3332): at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:844)
07-05 15:38:42.711: E/Database(3332): at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:540)
07-05 15:38:42.711: E/Database(3332): at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
07-05 15:38:42.711: E/Database(3332): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:98)
07-05 15:38:42.711: E/Database(3332): at com.db.RepositorioRegistroScript.<init>(RepositorioRegistroScript.java:42)
07-05 15:38:42.711: E/Database(3332): at com.gpslocator.Locator.verificaDb(Locator.java:360)
07-05 15:38:42.711: E/Database(3332): at com.gpslocator.Locator.checaNet(Locator.java:311)
07-05 15:38:42.711: E/Database(3332): at com.gpslocator.Locator$4.handleMessage(Locator.java:288)
07-05 15:38:42.711: E/Database(3332): at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 15:38:42.711: E/Database(3332): at android.os.Looper.loop(Looper.java:123)
07-05 15:38:42.711: E/Database(3332): at android.app.ActivityThread.main(ActivityThread.java:4669)
07-05 15:38:42.711: E/Database(3332): at java.lang.reflect.Method.invokeNative(Native Method)
07-05 15:38:42.711: E/Database(3332): at java.lang.reflect.Method.invoke(Method.java:521)
07-05 15:38:42.711: E/Database(3332): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
07-05 15:38:42.711: E/Database(3332): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
07-05 15:38:42.711: E/Database(3332): at dalvik.system.NativeStart.main(Native Method)
As vezes tambem recebo um log: "Finalizing a Cursor that has not been deactivated or closed"
Abraço,
Gabriel Augusto






0 comentários:
Postar um comentário