So öffnen Sie SQLite DB in Onrestart ()
-
26-10-2019 - |
Frage
Ich aktualisiere Home ListView mithilfe von Daten, die von DB abgerufen wurden. Wenn ich weitergehe, dann kommt es zu Hause ab, es stürzt ab
Mein Code ist hier
protected void onRestart() {
super.onRestart();
Log.i(TAG, "onRestart called");
DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();
DatabaseManager.getInstance(HomeActvity.this).closeDatabase();
}
Mein Protokoll ist:
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)
Ich habe Runonuithread () ausprobiert.
Lösung
Warum schließen Sie Ihre Datenbank gleich nach der Benachrichtigung, die Datachanged ist? Ich denke, die Datenbanklesen ereignen sich nach dem Schließen. Versuchen Sie, die Linie zu entfernen und zu prüfen, ob sie funktioniert.
DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();
DatabaSanemanager.getInstance (homactvity.this) .closedatabase ();
Andere Tipps
Sie tun nichts zwischen offen und nah! Woher..
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow