Выбор ответа Middle Room и хранение данных спрашивают часто обновлено

DataStore и SharedPreferences

Вопрос

Чем Jetpack DataStore лучше SharedPreferences?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Асинхронный API на корутинах и Flow, атомарные изменения, без блокировок главного. SharedPreferences читает файл синхронно, а apply(), хоть и пишет асинхронно, может блокировать главный поток при остановке компонента и давать ANR, ошибки записи теряются.

Варианты ответа

  1. DataStore хранит данные в облаке Google и синхронизирует их между устройствами
  2. Асинхронный API на корутинах и Flow, атомарные изменения, без блокировок главногоправильный ответ
  3. DataStore быстрее SharedPreferences для таблиц на миллион строк и сложных выборок
  4. DataStore шифрует данные автоматически ключом из Android Keystore при записи

Разбор

SharedPreferences читает файл синхронно, а apply(), хоть и пишет асинхронно, может блокировать главный поток при остановке компонента и давать ANR, ошибки записи теряются. DataStore читает и пишет через корутины, изменения атомарны (edit {} как транзакция), ошибки видны в потоке. Облака и автоматического шифрования нет, а для больших данных нужен Room.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.