В чем разница между apply() и commit() в SharedPreferences?

Посмотреть в Telegram: @AndroidSobes/61
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() во всех случаях, когда результат выполнения операции игнорируется.