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

时间:2015-12-30 20:58:45

标签: android version

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

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

}

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

2 个答案:

答案 0 :(得分:1)

检查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>

答案 1 :(得分:0)

使用此:

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

获取版本代码:

int verCode = pInfo.versionCode;

稍后使用"if"执行您需要的操作。