1

我有一个具有登录功能和自动登录的应用程序,在登录屏幕之前,会显示一个启动屏幕活动。在启动画面活动中,我想检查用户是否刚刚将应用程序从 Google play 更新到更新版本,如果是,则始终向他显示登录屏幕。所以我的问题是,如何检查当前版本的应用程序是否与上一个版本不同? 我尝试了在本主题中找到的解决方案: 检测新安装或更新版本(Android 应用)

但是在这个函数中

public static boolean isInstallFromUpdate(Context context) {
    try {
        long firstInstallTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).firstInstallTime;
        long lastUpdateTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).lastUpdateTime;
        return firstInstallTime != lastUpdateTime;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        return false;
    }
}

此行始终为firstInstallTime != lastUpdateTime; ,但是在更新之后,如果我关闭应用程序然后重新打开它,则此行应该是错误的。如果您有任何建议或需要更多详细信息,请告诉我!谢谢

4

2 回答 2

0

我认为一个简单的解决方案是,如果您有一个用于数据调用的移动应用程序管理面板,那么您必须将最新版本详细信息以及这些与数据相关的 API 调用存储到您的应用程序中,以便轻松检测您是否必须在管理面板中更改版本然后显示更新应用程序并重定向到播放商店的对话框...

这是我个人的看法,因为我用过这种方法......

于 2021-04-02T12:02:17.150 回答
0

如果您在更新后打开应用程序,您可以简单地设置一个 SharedPreference。关闭应用程序并重新打开它后,您应该检查您的isInstallFromUpdate(...)和刚刚设置的SharedPreference

于 2022-02-09T16:34:44.707 回答