Чем отличаются apply() и commit() в SharedPreferences?
Схема изменения данных, сохраненных в SharedPreferences выглядит как-то так:
val editor = sharedPreferences.edit()
editor.putString("", "")
editor.apply()
Так же есть вот такой вариант, покороче:
sharedPreferences.edit().putString("", "").commit()
В первом случае был использован apply(), во втором же commit()
Разница между этими двумя методами состоит в том, что commit() выполняется в главном потоке и по окончанию своего исполнения возвращает boolean переменную, true — если все успешно сохранилось и false если нет. В то же время apply() выполняется асинхронно, то есть в отдельном потоке. Благодаря этому не грузится UI поток, но в то же время не возвращается никакого результата, так что нет никакого способа узнать, сохранились ли данные на самом деле или же нет.
Peer-to-peer собеседования
AI Sprints — обучение профессиям с ИИ
Практика собеседований с менторами и другими студентами. Реальные вопросы по Kotlin, Android и Backend
- Живые собеседования: практикуйте интервью с менторами и коллегами-студентами
- Реальные вопросы: база вопросов по Kotlin, Android, Backend и QA
- Фидбек: обратная связь после каждого собеседования — знаете, что улучшить
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе