Bagaimana cara menghapus beberapa pasangan kunci / nilai dari SharedPreferences? Saya telah menempatkan dan saya untuk menghapusnya dari prefs.
android
sharedpreferences
Damir
sumber
sumber
Penting untuk diperhatikan bahwa, kecuali Anda berencana melakukan sesuatu dengan nilai kembalian dari panggilan commit (), sama sekali tidak ada alasan untuk menggunakan panggilan sinkronus () daripada panggilan apply () asinkron.
Perlu diingat bahwa jika Anda memanggil ini dari utas utama / UI, UI diblokir hingga commit () selesai. Ini bisa memakan waktu hingga sekitar 100 md seperti yang diterapkan ke sekitar 5 md untuk pengajuan. Itu mungkin tidak terlihat banyak, tetapi jika dilakukan terus menerus di seluruh aplikasi, itu pasti akan bertambah.
Jadi, kecuali Anda berencana melakukan sesuatu seperti ini, semoga di utas terpisah:
editor.remove(String key); boolean success = editor.commit(); if (!success) { // do something }
Anda seharusnya melakukan ini:
editor.remove(String key); editor.apply();
sumber
SharedPreferences.Editor.remove(key) commit();
sumber
Sangat sederhana:
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(); }
sumber
Inilah cara saya mengatasi masalah ini.
Pertama saya membuat sebuah instance dari SharedPreference sebagai
lalu saya menggunakan sharedPreference ini sebagai
mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
Di sini "in.bhartisoftwares.amit.allamitappsthree" adalah nama paket saya dan saya menggunakan Context.MODE_PRIVATE, karena saya ingin memanipulasi preferensi bersama ini hanya untuk nama paket ini.
Kemudian saya menghapus sharedPreference yang dipilih (kunci sharedPreference saya adalah mobileString) sebagai berikut:
mobilePreference.edit().remove("mobileString").commit();
Lihat kode lengkapnya di bawah ini:
SharedPreferences mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE); mobilePreference.edit().remove("mobileString").commit();
sumber
Informasi
Cukup periksa
sharedpref
kelas diperpanjang untukMap
itu mengapa adaremove
metodeSharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = prefs.edit(); editor.remove(String key); editor.apply();
Di sini editor adalah editor sharedPreferences.
sumber