SharedPreferences после перезапуска удаляет элементы

213
14 октября 2017, 17:14

У меня будильники. Создаю новый будильник, сохраняю время в Set в SharedPreferences.

buttons.add(dateFromTimePicker);
    sPref = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor ed = sPref.edit();
    ed.putStringSet(SAVE_DATE_CLOCK, buttons);
    ed.commit();
    //перезагружаю активити
    Intent i = new Intent( this, this.getClass() );
    finish();
    this.startActivity(i);

Затем перезапускаю активити. Получается, активити открывается и восстанавливает Set из SharedPreferences, допустим, 3 будильника. Set хранит 3 даты. Все ок.

//перед открытием заполним активити кнопками
    sPref = getPreferences(MODE_PRIVATE);
    buttons = sPref.getStringSet(SAVE_DATE_CLOCK, new HashSet<String>());
 // Вот если я процесс работы не убил, а из работающего апк перезагружаю,
 //то buttons.size будет = 3 или 4 и тд, а если убью процесс.
 //Открываю апк и buttons.size = 1

Убиваю процесс работы приложения, опять открываю приложение и оп, размер set который я восстанавливаю почему то не 3, а 1. Один будильник.

Почему если я убиваю процесс работы приложения, допустим перезагружаю устройство, то кол-во элементов в set уменьшается до 1?

Answer 1

Скорее всего происходит перезапись в SP -сах .Проблема в. onCreate или onStop onDestroy. SharedPreferences.Editor использует шаблон Builder для создания транзакции фиксации. editor.putString (K, V) .putLong (к2, п) .commit (); После commit () вы должны использовать новый редактор или вызвать editor.clear () перед повторным использованием

READ ALSO
Загрузить .obj с сервера ( как лучше сделать)

Загрузить .obj с сервера ( как лучше сделать)

На сервере есть 3d объекты, например, кувшин, ручка от кувшина и тд

166
C#: Перезапуск потока по его завершению

C#: Перезапуск потока по его завершению

Этот вопрос является продолжением темы Инициализация потока в конструкторе классаНа англоязычном StackOverflow я получил такое решение:

228
Проблема с фоном строк в Datagrid WPF

Проблема с фоном строк в Datagrid WPF

Имеется DataGridPeoples :

287
WPF&amp;MVVM: Привязка свойств VM

WPF&MVVM: Привязка свойств VM

В вопросе Получение данных во ViewModel из делегированного объекта по поводу приведённого ниже кода View с привязками и паттерна MVVM в целом я понял...

233