Как удалить пару ключей/значений из SharedPreferences? Я поставил и я удалить это из префов.
Как удалить пару ключей/значений из SharedPreferences?
Ответ 1
SharedPreferences mySPrefs =PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = mySPrefs.edit();
editor.remove(String key);
editor.apply();
Здесь редактор - редактор sharedPreferences.
Ответ 2
Важно отметить, что, если вы не планируете что-то делать с возвращаемым значением вызова commit(), нет абсолютно никакой причины использовать синхронный вызов commit() вместо асинхронного вызова apply().
Имейте в виду, что если вы вызываете это из потока основного/пользовательского интерфейса, пользовательский интерфейс блокируется до завершения commit(). Это может занять около 100 мс, так как оно составляет около 5 мс для подачи заявки. Это может показаться не очень много, но если это делается постоянно во всех приложениях, это, безусловно, будет складываться.
Итак, если вы не планируете делать что-то подобное, надеюсь, в отдельном потоке:
editor.remove(String key);
boolean success = editor.commit();
if (!success) {
// do something
}
Вместо этого вы должны сделать это:
editor.remove(String key);
editor.apply();
Ответ 3
SharedPreferences.Editor.remove(key)
commit();
Ответ 4
Вот как я применил эту проблему.
Сначала я создал экземпляр SharedPreference как
SharedPreferences mobilePreference;
то я использовал этот 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();
Ответ 5
Информация
Просто проверьте, что класс sharedpref
расширен до Map
, поэтому метод remove
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = prefs.edit();
editor.remove(String key);
editor.apply();
Здесь редактор - редактор sharedPreferences.