我的应用程序需要能够检测系统是否成功升级,但它可能是由相同版本的系统映像引起的,有没有办法检查系统升级是否成功完成,无论os版本是否更改?
答案 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;
}