Comment ouvrir SQLite DB dans onrestart ()
-
26-10-2019 - |
Question
Je suis mise à jour à la maison à partir de données extraites listview de DB. Quand je sors puis retour à la maison, il tombe en panne
Mon code est ici
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart called");
DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();
DatabaseManager.getInstance(HomeActvity.this).closeDatabase();
}
Mon journal est:
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)
J'ai essayé runOnUIThread () ..
La solution
Pourquoi vous fermez votre base de données juste après notifydatachanged? Je pense que la lecture de la base de données se produit après la clôture. Essayez de supprimer la ligne et voir si cela fonctionne.
DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();
DatabaseManager.getInstance (HomeActvity.this) .closeDatabase ();
Autres conseils
Vous faites rien entre ouvrir et fermer! comment se fait ..
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow