android进入sqlite的方法,如何在Android中正确打开/关闭SQLite数据库

我有一个应用程序功能正常,不强制关闭或崩溃.但是当我看着LogCat时,它偶尔会给我这个:

05-20 15:24:55.338: E/SQLiteDatabase(12707): close() was never explicitly called on database '/data/data/com.---.--/databases/debt.db'

05-20 15:24:55.338: E/SQLiteDatabase(12707): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here

有一点路要走

05-20 15:24:55.338: E/System(12707): Uncaught exception thrown by finalizer

05-20 15:24:55.338: E/System(12707): java.lang.IllegalStateException: Don't have database lock!

我不知道什么时候我应该打开和关闭我的数据库?

我有一个主要的活动,只是一个闪屏.然后进入使用DB中的信息调用ListView的活动;所以在这个活动中DB首次打开.

还有一个其他活动,其中DB需要使用ListVeew分支.我什么时候应该打开和关闭这个?词似乎是我只需要打开一次,然后在应用程序“暂停”,“停止”或“销毁”时关闭.

如果是这种情况,我在哪里将db.close()方法…放在onStop等的Splash Screen Main Activity中?或与打开数据库的活动相同的活动?还是有另一个地方?

更新:

这是错误指向的代码行:

public void open() throws SQLException {

database = dbHelper.getWritableDatabase();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值