Схема изменения данных, сохраненных в SharedPreferences выглядит как-то так:
val editor = sharedPreferences.edit()
editor.putString("", "")
editor.apply()
Так же есть вот такой вариант, покороче:
sharedPreferences.edit().putString("", "").commit()
В первом случае был использован apply(), во втором же commit()
Разница между этими двумя методами состоит в том, что commit() выполняется в главном потоке и по окончанию своего исполнения возвращает boolean переменную, true — если все успешно сохранилось и false если нет. В то же время apply() выполняется асинхронно, то есть в отдельном потоке. Благодаря этому не грузится UI поток, но в то же время не возвращается никакого результата, так что нет никакого способа узнать, сохранились ли данные на самом деле или же нет.