SharedPreferences.Editor
sınıfında, tüm kayıtlı tercihlerinizi (commit()
'dan sonra) kaldıran bir clear()
işlevi vardır. Gerektiğinde güncelleme eğer gösterecektir bir boolean bayrak oluşturabilirsiniz:
void updatePreferences() {
SharedPreferences prefs = ...;
if(prefs.getBoolean("update_required", true)) {
SharedPreferences.Editor editor = prefs.edit();
editor.clear();
/*....make the updates....*/
editor.putBoolean("update_required", false)
editor.commit();
}
}
Ve herhangi preferenes erişmeden önce bundan sonra, ana (ilk başlangıç) aktivitesinde bu çağırmanız gerekiyor.
güncel sürümünü almak için (versionCode manifest'te ilan)
DÜZENLEME:
int version = 1;
try {
version = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if(version > ...) {
//do something
}
DÜZENLEME
bazı güncelleme işlemini yapmak istiyorsanız, her ne zaman sürüm değişiklikleri, daha sonra aşağıdaki gibi bir şey yapabilirsiniz:
void runUpdatesIfNecessary() {
int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
SharedPreferences prefs = ...;
if (prefs.getInt("lastUpdate", 0) != versionCode) {
try {
runUpddates();
// Commiting in the preferences, that the update was successful.
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("lastUpdate", versionCode);
editor.commit();
} catch(Throwable t) {
// update failed, or cancelled
}
}
}
Kullanıcının Google Play pazarından bir güncelleme yapmaya ne zaman karar verdiğini söylemek mümkün mü? – Mel
Tam olarak bu kodun yaptığı şey şu: eğer sürüm yeni olacaksa o zaman kullanıcının bir güncelleme yapmaya karar verdiğini biliyorsunuz. – Phate
Bu, işleri yapmak için gerçekten güzel bir yol değil, aynı zamanda mevcut sürümü kaydetmeye de başlayabilirsiniz. paylaşılanlar ve uygulamanızın gerçek sürümü (yukarıda gösterildiği gibi) ile eşleşmediğinde, bir şeyler de yapabilirsiniz. –