我正在使用DB检索的数据更新Home ListView。当我出去然后回到家时,它崩溃了

我的代码在这里

protected void onRestart() {
    super.onRestart();
    Log.i(TAG, "onRestart called");
    DatabaseManager.getInstance(HomeActvity.this).open();
    listAdapter.notifyDataSetChanged();
    DatabaseManager.getInstance(HomeActvity.this).closeDatabase();
}

我的日志是:

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)

我尝试了runonuithread()..

有帮助吗?

解决方案

NotifyDatachanged后,为什么要关闭数据库?我认为数据库阅读正在关闭后发生。尝试删除行,看看它是否有效。

DatabaseManager.getInstance(HomeActvity.this).open();
listAdapter.notifyDataSetChanged();

databasemanager.getInstance(homeActvity.this).closedatabase();

其他提示

您在开放和关闭之间什么都不做!怎么来的..

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top