Подтвердить что ты не робот

Как удалить пару ключей/значений из SharedPreferences?

Как удалить пару ключей/значений из SharedPreferences? Я поставил и я удалить это из префов.

4b9b3361

Ответ 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.