SharedPreferences.Editor
कक्षा में clear()
फ़ंक्शन है, जो आपकी सभी संग्रहीत वरीयताओं को हटा देता है (commit()
के बाद)। आप एक बूलियन ध्वज जो जरूरत पड़ने पर अपडेट किया इंगित करेंगे बना सकते हैं:
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();
}
}
और उसके बाद आप इससे पहले कि आप किसी भी preferenes का उपयोग, अपने मुख्य (पहले प्रारंभिक) गतिविधि में इस फोन की जरूरत है।
संपादित
वर्तमान संस्करण प्राप्त करने के लिए (versionCode प्रकट में घोषित):
int version = 1;
try {
version = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if(version > ...) {
//do something
}
संपादित
आप कुछ अद्यतन करने संचालन करना चाहते हैं, जब भी संस्करण बदलता है, तो आप ऐसा कुछ कर सकते हैं:
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
}
}
}
स्रोत
2012-09-12 04:04:43
क्या यह बताना संभव है कि उपयोगकर्ता Google Play बाजार से अपडेट करने का निर्णय लेता है? – Mel
यह वही है जो यह कोड करता है: यदि संस्करण नया होगा तो आपको पता चलेगा कि उपयोगकर्ता ने – Phate
अपडेट करने का निर्णय लिया है, यह चीजों को करने का वास्तव में सुंदर तरीका नहीं है, लेकिन आप वर्तमान संस्करण को भी संग्रहीत करना शुरू कर सकते हैं साझा संदर्भ, और जब यह आपके ऐप के वास्तविक संस्करण (ऊपर दिखाया गया है, इसे कैसे प्राप्त करें) से मेल नहीं खाता है, तो आप कुछ भी कर सकते हैं। –