数据库打开/关闭 - 数据库未打开

时间:2011-03-02 16:08:21

标签: android database

在每个活动中,我在onCreate()方法中添加了以下行:

database = new DatabaseHelper(this);  
database.open();

在每个onDestroy()方法中,以下行:

database.close();

因此,只要活动没有被销毁,就会打开数据库。

如果我的应用想要更新数据库中的内容,有时会有一些用户关闭。

Following error:
java.lang.IllegalStateException: database not open
at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1776)
at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1731)

怎么会发生这种情况?
如果我在onCreate()中打开数据库并在onDestroy()中将其关闭,是否应始终打开?!

1 个答案:

答案 0 :(得分:3)

Binnyb是对的,很可能您的数据库在后台活动onDestroy中关闭,而活动活动中的错误会增加。您需要在需要保存/检索数据时打开/关闭数据库。

UPD:

查看google's dev docs,如果已经打开了数据库,getWritableDatabase将返回一个缓存的对象。