如果这个问题得到解答,请原谅我 - 我搜查了一下,找不到它。
我有一个我想升级的Android应用程序,它使用SQLite数据库。我想更新应用程序中的一些应用程序逻辑,但不会更新数据库架构或内容。我基本上需要保持数据库与用户完全一样。
我是否需要在onUpgrade中执行任何操作以确保保留数据库,或者我是否可以单独保留数据库内容以进行此更新?
答案 0 :(得分:5)
onUpgrade()方法用于版本更改。这意味着需要更改或删除或删除存储在手机中的数据库以及要创建的新数据库。由于您的应用程序没有任何这些要求,您可以将数据库内容留给此更新。
答案 1 :(得分:4)
此related article可以帮助您解决问题。
我理解它的方式是,如果您想在版本之间进行更新,则需要将数据库更改代码放在onUpdate()中。但既然你不打算,并且可能保持数据库版本相同,那么你很可能根本就没有问题。
答案 2 :(得分:1)
升级不会干扰SQLite。除非您以编程方式执行此操作(在onUpgrade方法中)或卸载并重新安装应用程序,否则将无法实现对db结构的更改。
只要您要升级的是SAME应用程序,您的数据库就不会受到影响,您的数据也不会受到影响。如果更改用于构建apk的签名密钥,则将重新创建数据库。
相反,如果您在任何给定点更改数据库结构,您的onUpgrade方法将起作用。您将被迫备份,删除,重新创建和重新填充已在版本之间更改的表(其他表在结构和数据中保持不变)。
注意:在调试中,我只是在每次进行数据库更改时卸载并重新安装应用程序,但在生产中你不想这样做。