如何仅为我的应用程序的旧版本执行代码

how to execute code only for old versions of my app

我只想在我的代码中为我的应用程序的旧版本(不是 android 版本我的应用程序版本代码)做一些事情,而不是为新下载我尝试使用这个

try {
     version = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
} catch (PackageManager.NameNotFoundException e) {
    e.printStackTrace();
}
if(version<2) {

}

并将 loges 放入 if 语句中,我下载了我的应用程序,当前版本是 1,在我的代码中,我将其更改为 2,并 运行 使用上面的代码,它永远不会到达他的 if 块我假设是因为它在 onCreate 之前更新了版本。 所以我的问题是我应该把 if 语句放在哪里,或者是否有其他方法可以实现这一点。 感谢您的帮助

检查 android 版本:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
     // only for gingerbread and newer versions
}

更新:

使用BroadcastReceiver进行升级操作。

    <receiver android:name=".receiver.OnUpgradeReceiver">
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REPLACED" />
            <data android:scheme="package" android:path="com.app.package" />
        </intent-filter>
    </receiver>

使用这个:

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
String version = pInfo.versionName;

获取版本号:

int verCode = pInfo.versionCode;

稍后使用和"if"来执行你需要的。