我对应用程序的升级过程有疑问,更具体地说,是升级或更改数据库。
考虑到我有testapp.apk的第1版。这个版本有数据库版本1,新版本的testapp.apk有数据库版本2.现在,如果我要升级我的testapp.apk,升级之前是否会调用旧版本的onUpgrade,或者只是调用新版本的onUpgrade? p>
答案 0 :(得分:0)
它将运行新版本。升级应用程序时,它不会运行,只是将旧应用程序复制到旧应用程序上。然后当它运行时,它将只有onUpgrade()的新版本。
答案 1 :(得分:-1)
onUpgrade代码只会在最新安装的apk上调用。
首先安装新的testapp.apk。然后,当第一次访问数据库时,SQLiteOpenHelper将检查数据库的现有版本,并将其与您在testapp.apk中指定的新版本进行比较。
如果新版本大于旧版本,则会在新testapp.apk中的SQLiteOpenHelper上调用onUpgrade。
请在此处查看我对类似问题的回答,因为我认为这有助于解释其中的机制 的onCreate / onUpgrade / onDowngrade。