Cómo abrir SQLite DB en OnRestart ()
-
26-10-2019 - |
Pregunta
Estoy actualizando Home ListView utilizando datos recuperados de DB. Cuando salgo y vuelvo a casa, se bloquea
Mi código esta aquí
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart called");
DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();
DatabaseManager.getInstance(HomeActvity.this).closeDatabase();
}
Mi registro es:
11-28 19:07:22.606: E/AndroidRuntime(24303): java.lang.IllegalStateException: database not open
11-28 19:07:22.606: E/AndroidRuntime(24303): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1224)
11-28 19:07:22.606: E/AndroidRuntime(24303): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1184)
11-28 19:07:22.606: E/AndroidRuntime(24303): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1264)
Probé runonuithread () ..
Solución
¿Por qué cierre su base de datos justo después de NotifyDatachanged? Creo que la lectura de la base de datos está ocurriendo después del cierre. Intente eliminar la línea y vea si está funcionando.
DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();
Databasemanager.getInstance (HomeActVity.THIS) .CLOSEDATABASE ();
Otros consejos
¡No estás haciendo nada entre Open and Close! Cómo..
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow