如何仅为我的应用程序的旧版本执行代码
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"
来执行你需要的。
我只想在我的代码中为我的应用程序的旧版本(不是 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"
来执行你需要的。