我创建了一个 Android 应用程序,它在启动时检查是否有新版本的应用程序。如果是,应用程序下载新的 apk 文件并安装新的 apk。 我的应用程序使用 sqlite 数据库。但是这个数据库,从一个版本到另一个版本可以改变。 我想我必须使用以下方法:
onUpgrade()
但是我不知 Prop 体怎么用。
当我启动应用程序时,我将此代码用于 crete 数据库(如果不存在):
DbHelper mDHelper = new DbHelper(context, DB_NAME, null, DB_VERSION)
如果我想使用onUpgrade()
方法,我应该改变什么?
我什么时候必须调用它?
最佳答案
onUpgrade()
在您的数据库版本发生变化时被调用(您不会自己调用它),这意味着基础表结构发生变化等。
一般来说,这意味着操作系统告诉你“嘿,你要求数据库结构版本 10,但我发现我们这里有一些旧的东西,所以这是你在开始使用数据库之前修复它的机会(并且可能由于结构不匹配而崩溃)”。
在那种方法中,你应该做所有必要的事情,好吧..升级你的旧数据库的结构以匹配当前版本要求的结构,比如添加/删除列,转换行内容,甚至完全删除旧数据库并从头开始创建它- 对于 Android,你在这里做什么并不重要 - 它只是一种紧急回调,让你的代码完成必要的工作(如果有的话)。您需要注意用户可能不会经常更新,因此您必须始终处理从版本 X 到 Y 的升级,因为 X 可能不等于(Y-1)。
关于android - Android 中的 onUpgrade() sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13159210/