android 中sqlite 插入数据的语句要不要写db.close();我后面还要调用查询的语句,在插入完成后要关闭吗?
如果我用到getReadableDatabase();查询,需要调用db.close();吗?我对sqlite不熟,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
由于SQLiteOpenHelper
内部只缓存一个数据库的连接(即一个SQLiteDatabase
实例),
所以,当SQLiteOpenHelper
被多个线程调用的时候,就需要注意了。
譬如:
线程A
通过getWritableDatabase()
获取了一个SQLiteDatabase
用来进行删除记录操作,
线程B
通过getReadableDatabase()
获取了一个SQLiteDatabase
用来进行其它操作,操作已完成正在close()
。
当线程A
还在进行删除记录操作的时候,线程B
调用了SQLiteDatabase.close()
方法断开了数据库连接,
那么将会导致线程A的删除操作出现异常
所以,一般来说不要随便close()
,我认为在在Activity
执行onDestory
的时候调用close()比较合理,或者整个App
退出的时候再close()
。