我正在创建一个数据库助手类,对于其中的一些方法,我只查询数据库,而其他方法则写入数据库。
我的理解是,这两种方法都会打开数据库,让程序只读或写数据库。
对于查询语句,是否值得只使用getReadableDatabase(),或者两种方法之间的性能差异很小。
耽误您时间,实在对不起。
发布于 2011-07-06 21:45:32
它们返回相同的对象,除非磁盘已满,或者存在强制以只读模式打开数据库的权限错误。不过,这个名称有点让人困惑:)
根据经验,您应该将对这些方法的任何调用放在UI线程之外。两者都可能需要很长时间才能恢复。
如果您不打算编写数据库,则只需使用getReadableDatabase,因为它将有助于您的代码清晰度和意图。
更多信息here。
发布于 2013-12-06 02:17:34
如果您查看谷歌的NotePad示例项目中的NotepadProvider.java,您将看到它们都使用了这两种方法--具体取决于用例。
发布于 2013-12-03 20:23:52
如果你在数据库上做了太多的操作,比如查询,按随机顺序频繁更新,那么使用getReadabledatabase就没有任何意义了,因为它只能用来读取值。
根据您的应用程序需求,您可以判断使用情况。如果你只是不断地读取值,那么你可以使用getreadabledatabase。
注意:有时当你试图使用getwritabledatabase打开可写的数据库时,如果系统发现一个像写权限之类的异常,在这种情况下系统可能会抛出一个异常。在这种情况下,您可以使用getreadabledatabase打开数据库。
https://stackoverflow.com/questions/6597277
复制相似问题