如果Android系统升级,如何在应用程序中检测?

时间:2017-06-26 22:54:00

标签: android

我的应用程序需要能够检测系统是否成功升级,但它可能是由相同版本的系统映像引起的,有没有办法检查系统升级是否成功完成,无论os版本是否更改?

1 个答案:

答案 0 :(得分:0)

您的Application.onCreate可以将您的包的上次更新时间与存储的上次更新时间进行比较。如果时间不同,则应用程序已“更新”(即使版本实际上没有更改)。

例如,它可以调用wasUpdated方法,如下所示。 (此方法在第一次调用时始终返回true,但您可以将其修改为不执行此操作。)

static final String PREF_LAST_UDATE_TIME = "pref_last_update_time";

static boolean wasUpdated(Context context) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    long storedLut = prefs.getLong(PREF_LAST_UDATE_TIME, -1);
    long lut = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).lastUpdateTime;
    if (storedLut != lut) {
        prefs.edit().putLong(PREF_LAST_UDATE_TIME, lut).apply();
        return true; 
    }
    return false;
}