我在我的应用程序使用的数据库中添加了一个表,并编写了一些代码来处理该表。我的手机和模拟器上的所有功能都很好,所以我将更新发送到了市场。
这导致我在开发人员控制台中收到相当多的堆栈跟踪原因
android.database.sqlite.SQLiteException: no such table: flag
(flag是新表)。
这让我想知道,在更新应用程序时是否删除了数据库?目前在我的应用程序中,我正在查看数据库是否存在,如果存在,那么我不会重新创建它。
在发送更新之前我没有抓到这个,因为我在上传调试版之前卸载了应用程序。
我已经推出了一个快速更新,在所有对新表的访问中都有一个try catch块(我知道,首先应该在那里,我知道)。
答案 0 :(得分:4)
不会删除用户数据,包括数据库。
您的数据库有版本号。更新应用程序时,会提前更新版本号,以便检测当前的“旧”数据库。
这可用于触发迁移例程。在您的情况下,它应该已向数据库添加新表。
答案 1 :(得分:0)
SQLiteOpenHelper就是答案。