2010-10-27 82 views
1

我向我的应用程序使用的数据库添加了一个表,并编写了一些代码来处理该表。在我的手机和模拟器中,一切正常,因此我将更新发送到市场。应用程序更新时是否删除数据库?

这使我由

android.database.sqlite.SQLiteException: no such table: flag 

获得相当的开发者控制台导致少数堆栈跟踪(标志为新表)。

这让我想知道,应用程序更新时是否删除了数据库?目前在我的应用程序中,我正在查看数据库是否存在,如果存在,那么我不会重新创建它。

在发送更新之前,我没有收到这个消息,因为我在上传调试版之前卸载了应用程序。

我已经推出了一个快速更新,它有一个try catch块,用于访问新表(应该已经放在第一位,我知道,我知道)。

回答

4

用户数据未被删除,包括数据库。

你的数据库有一个版本号。当您更新应用程序时,您会提前输入版本号,以便检测当前的“旧”数据库。

这可以用于触发迁移例程。在你的情况下,它应该已经添加了新的表到数据库。

相关问题