Come aprire DB SQLite in onrestart ()
-
26-10-2019 - |
Domanda
sto aggiornando ListView casa utilizzando i dati recuperati da DB. Quando vado indietro poi rimonta alla Home si blocca
Il mio codice è qui
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart called");
DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();
DatabaseManager.getInstance(HomeActvity.this).closeDatabase();
}
Il mio Log è:
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)
ho provato runOnUIThread () ..
Soluzione
Perché si chiude il database subito dopo notifydatachanged? Credo che la lettura del database sta accadendo dopo la chiusura. Provare a rimuovere la linea e vedere se funziona.
DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();
DatabaseManager.getInstance (HomeActvity.this) .closeDatabase ();
Altri suggerimenti
Si stanno facendo nulla in mezzo aprire e chiudere! come mai ..
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow