apply() и
commit() – методы класса
SharedPreferences.Editor. Объект
Editor создается методом
SharedPreferences.edit() и используется для изменения данных в
SharedPreferences.
Метод
commit() добавлен в класс
Editor начиная с API level 1. Этот метод синхронно и атомарно записывает изменения, сделанные в
Editor, в файл
SharedPreferences на диске.
commit() возвращает
true, если изменения успешно записаны, иначе
false.
Не рекомендуется вызывать
commit() из UI-треда, т.к. этот метод выполняет работу с диском синхронно, что может занять продолжительное время и вызвать лаги в пользовательском интерфейсе.
Метод
apply() добавлен в API level 9.
apply() синхронно выполняет изменения
Editor в памяти, в объекте
SharedPreferences. После этого изменения в памяти асинхронно сохраняются на диск. Операция
apply() атомарна, но из-за асинхронного сохранения
apply() не возвращает
Boolean результат и не позволяет узнать, выполнилась ли операция успешно.
Если после
apply() вызван
commit() с новыми изменениями, то поток, выполняющий метод
commit() будет заблокирован, пока не выполнится синхронизация изменений
apply().
Рекомендуется использовать метод
apply() во всех случаях, когда результат выполнения операции игнорируется.