SharedPreferences থেকে কিছু কী / মান জুটি কীভাবে সরানো যায়? আমি রেখেছি এবং আমি এটি প্রিফেস থেকে সরাতে চাই।
উত্তর:
SharedPreferences mySPrefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.remove(key);
editor.apply();
এখানে সম্পাদক ভাগ করা পছন্দসই সম্পাদক।
এটি লক্ষণীয় গুরুত্বপূর্ণ যে আপনি যদি কমিট () কলটির রিটার্ন মান দিয়ে কিছু করার পরিকল্পনা না করেন, ততক্ষণে অ্যাসিঙ্ক্রোনাস অ্যাপ্লিকেশন () কলের পরিবর্তে সিঙ্ক্রোনাস কমিট () কলটি ব্যবহার করার কোনও কারণ নেই।
মনে রাখবেন যে আপনি যদি এইটিকে মূল / ইউআই থ্রেড থেকে কল করছেন তবে কমিট () সম্পন্ন না হওয়া অবধি ইউআই অবরুদ্ধ থাকবে। প্রয়োগের জন্য প্রায় 5 মিমি হিসাবে প্রয়োগ করা হিসাবে এটি প্রায় 100ms এর উপরে যেতে পারে take এটি খুব বেশি মনে হচ্ছে না, তবে যদি কোনও অ্যাপ্লিকেশন জুড়ে ধারাবাহিকভাবে এটি করা হয় তবে তা অবশ্যই যুক্ত হয়ে যাবে।
সুতরাং, যদি না আপনি এই জাতীয় কিছু করার পরিকল্পনা করছেন, আশা করি একটি পৃথক থ্রেডে:
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 হিসাবে একটি উদাহরণ তৈরি করেছি
SharedPreferences mobilePreference;
তারপরে আমি এই ভাগ করা পছন্দ হিসাবে ব্যবহার করেছি
mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
এখানে "in.bhartisoftwares.amit.allamitappsthree" হ'ল আমার প্যাকেজের নাম এবং আমি কনটেক্সট.মোড।
তারপরে আমি নির্বাচিত শেয়ারডপ্রেফারেন্সটি (আমার শেয়ারডপ্রিফারেন্সটির মূলটি মোবাইলস্ট্রিং) মুছে ফেলছি:
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();
এখানে সম্পাদক ভাগ করা পছন্দসই সম্পাদক।