当第一个查询使用只读数据库时,Android 无法升级我的数据库

2024-04-06

所以到目前为止我一直严重依赖自动化(几乎)onCreate / onUpgrade我的方法SQLite数据库。一切都工作正常,我只需更改数据库的版本号即可运行onUpgrade自动地。

但现在,当我尝试向数据库添加列并更改版本号时,我遇到了该异常:

SQLiteException: Can't upgrade read-only database from version X to Y

看看我的代码,果然我的应用程序的第一个查询是SELECT查询,我正在使用getReadableDatabase打开与其的连接,因为该请求不需要写访问权限。

于是我就想,遇到这样的问题我该怎么解决呢?我应该使用getWritableDatabase每时每刻? (作为一种解决方法,这可以让我的更新通过)当然,如果这两种方法都存在,那是因为它们应该被使用,并且连接在需要时针对只读访问进行了优化?我不想失去这个好处。


我使用的解决方法:在我的应用程序的“开始”处有一个方法,它的作用只是getWritableDatabase()并关闭它,以便在必要时触发所有需要的创建/更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当第一个查询使用只读数据库时,Android 无法升级我的数据库 的相关文章

随机推荐