Как удалить пару ключ / значение из SharedPreferences? Я поставил и убрал это из prefs.
android
sharedpreferences
Дамир
источник
источник
Важно отметить, что, если вы не планируете что-то делать с возвращаемым значением вызова commit (), нет абсолютно никаких причин для использования синхронного вызова commit () вместо асинхронного вызова apply ().
Имейте в виду, что если вы вызываете это из основного потока / потока пользовательского интерфейса, пользовательский интерфейс блокируется до завершения commit (). Это может занять около 100 мс, а не около 5 мс для подачи заявки. Может показаться, что это не так уж много, но если делать это постоянно на протяжении всего приложения, это обязательно прибавится.
Итак, если вы не планируете делать что-то подобное, надеюсь, в отдельном потоке:
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(); }
источник
Вот как я решил эту проблему.
Сначала я создал экземпляр SharedPreference как
то я использовал это sharedPreference как
mobilePreference = this.getSharedPreferences("in.bhartisoftwares.amit.allamitappsthree", Context.MODE_PRIVATE);
Здесь «in.bhartisoftwares.amit.allamitappsthree» - это имя моего пакета, и я использую Context.MODE_PRIVATE, потому что я хочу управлять этим общим предпочтением только для этого имени пакета.
Затем я удаляю выбранный sharedPreference (ключ моего sharedPreference - 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();
Здесь редактор - это редактор sharedPreferences.
источник