首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getWritableDatabase() VS getReadableDatabase()

getWritableDatabase() VS getReadableDatabase()
EN

Stack Overflow用户
提问于 2011-07-06 21:34:41
回答 5查看 16K关注 0票数 20

我正在创建一个数据库助手类,对于其中的一些方法,我只查询数据库,而其他方法则写入数据库。

我的理解是,这两种方法都会打开数据库,让程序只读或写数据库。

对于查询语句,是否值得只使用getReadableDatabase(),或者两种方法之间的性能差异很小。

耽误您时间,实在对不起。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-06 21:45:32

它们返回相同的对象,除非磁盘已满,或者存在强制以只读模式打开数据库的权限错误。不过,这个名称有点让人困惑:)

根据经验,您应该将对这些方法的任何调用放在UI线程之外。两者都可能需要很长时间才能恢复。

如果您不打算编写数据库,则只需使用getReadableDatabase,因为它将有助于您的代码清晰度和意图。

更多信息here

票数 18
EN

Stack Overflow用户

发布于 2013-12-06 02:17:34

如果您查看谷歌的NotePad示例项目中的NotepadProvider.java,您将看到它们都使用了这两种方法--具体取决于用例。

票数 2
EN

Stack Overflow用户

发布于 2013-12-03 20:23:52

如果你在数据库上做了太多的操作,比如查询,按随机顺序频繁更新,那么使用getReadabledatabase就没有任何意义了,因为它只能用来读取值。

根据您的应用程序需求,您可以判断使用情况。如果你只是不断地读取值,那么你可以使用getreadabledatabase。

注意:有时当你试图使用getwritabledatabase打开可写的数据库时,如果系统发现一个像写权限之类的异常,在这种情况下系统可能会抛出一个异常。在这种情况下,您可以使用getreadabledatabase打开数据库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6597277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档