SharedPreferences से कुछ कुंजी / मान युग्म कैसे निकालें? मैंने लगा दिया है और मुझे इसे प्रीफ़्स से निकालना है।
जवाबों:
SharedPreferences mySPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.remove(key);
editor.apply();
यहाँ संपादक साझाप्रदर्शन संपादक है।
यह नोट करना महत्वपूर्ण है कि, जब तक आप कमिट () कॉल के रिटर्न वैल्यू के साथ कुछ करने की योजना नहीं बना रहे हैं, एसिंक्रोनस लागू () कॉल के बजाय सिंक्रोनस कमिट () कॉल का उपयोग करने का कोई कारण नहीं है।
ध्यान रखें कि यदि आप इसे मुख्य / UI थ्रेड से कॉल कर रहे हैं, तो UI पूर्ण होने तक अवरुद्ध है। इस आवेदन के लिए लगभग 5ms के रूप में लगभग 100ms के ऊपर ले जा सकते हैं। यह बहुत ज्यादा नहीं लग सकता है, लेकिन अगर एक आवेदन में लगातार किया जाता है, तो यह निश्चित रूप से जोड़ देगा।
इसलिए, जब तक आप ऐसा कुछ करने की योजना नहीं बना रहे हैं, उम्मीद है कि एक अलग सूत्र पर:
editor.remove(String key);
boolean success = editor.commit();
if (!success) {
// do something
}
आपको इसके बजाय ऐसा करना चाहिए:
editor.remove(String key);
editor.apply();
SharedPreferences.Editor.remove(key)
commit();
यह बहुत सरल है:
private SharedPreferences sharedPreferences() {
return PreferenceManager.getDefaultSharedPreferences(mContext);
}
public void clearSharedPreferences() {
sharedPreferences()
.edit()
.remove(SOME_KEY_1)
.remove(SOME_KEY_2)
.remove(SOME_KEY_3)
.apply();
}
यहां बताया गया है कि मैंने इस मुद्दे को कैसे निपटाया।
पहले मैंने एक साझा साझाकरण का एक उदाहरण बनाया
SharedPreferences mobilePreference;
तब मैंने इस साझाकरण का उपयोग किया
mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
यहां "in.bhartisoftwares.amit.allamitappsthree" मेरा पैकेज नाम है और मैं Context.MODE_PRIVATE का उपयोग कर रहा हूं, क्योंकि मैं इस साझा नाम के लिए केवल इस साझा वरीयता में हेरफेर करना चाहता हूं।
फिर मैं निम्न साझा किए गएPreference (मेरे साझाकरण की कुंजी को हटा रहा हूँ mobileString) निम्नानुसार है:
mobilePreference.edit().remove("mobileString").commit();
नीचे दिए गए कोड को पूरा देखें:
SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
mobilePreference.edit().remove("mobileString").commit();
जानकारी
बस चेक sharedpref
क्लास को बढ़ाया जाता Map
है, इसलिए remove
विधि है
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.remove(String key);
editor.apply();
यहाँ संपादक साझाप्रदर्शन संपादक है।