我测试了Android可以将newVersion
<传递oldVersion
给SQLiteOpenHelper.onUpgrade()
方法,即。它希望应用程序降级其数据库。
我不想处理这种情况,尽管我想以某种方式通知用户我的应用程序存在一个较新版本(她显然以前安装过),而这正是她应该使用的。
任何想法什么是实现这一目标的最佳方法?Toast
? AlertDialog
(但在什么情况下)?
我测试了Android可以将newVersion
<传递oldVersion
给SQLiteOpenHelper.onUpgrade()
方法,即。它希望应用程序降级其数据库。
我不想处理这种情况,尽管我想以某种方式通知用户我的应用程序存在一个较新版本(她显然以前安装过),而这正是她应该使用的。
任何想法什么是实现这一目标的最佳方法?Toast
? AlertDialog
(但在什么情况下)?
实际上,您可以使用比“旧”版本更小的“新”版本来调用该方法,但是什么时候会发生呢?
除非您希望您的用户手动重新安装您的应用程序,用较早的 APK 覆盖它,否则无需考虑这一点。
我们的应用程序有多个活动分支(例如 v1.x 和 v2.x),并且我们在内部发布版本进行测试。这意味着测试人员偶尔会在新版本之上安装旧版本。
在这种情况下优雅地应对是个好主意(一个有用的错误弹出窗口、数据库被炸毁等),否则测试人员会看到“强制退出”消息,然后我们必须查看adb logcat
日志以确认这是由于版本不匹配。
最初我担心在其他合理的情况下可能会发生这种情况,例如在 Android Market 中重新激活旧版本时(例如由于新版本中的灾难性错误)。
但是,Android 文档似乎说您不能激活旧版本:
您无法激活版本代码低于其要替换的 APK 的新 APK。
因此,要达到这种情况,您需要先使用新版本号重建旧版本,然后才能激活它。IMO 仍然值得应对这种情况,因为有人很容易在凌晨 4 点犯这个错误,同时试图退出一个糟糕的版本!