просто использовать livedata во время установки значений? Будет ли обновляться shared preference в ViewModel, если я его изменю в другом месте?
Будет, если зарегистрируете его в init и сделаете unregister в onCleared
Нужно объявить shared preference в init и добавить unregister в метод жизненного цикла view model?
В init именно зарегистрировать. А объявить в качестве lazy top-level property. В onCleared отменить регистрацию. И да, это для следования ЖЦ ViewModel.
Lazy top-level это как?
Top-level properties - это свойства, объявляемые в классе вне методов и, обычно, до них(но необязательно). Lazy property - свойство, инициализируемое лишь при первом доступе к нему при помощи ключевого слова lazy. Например: val instance by lazy { SomeClass() }
А понятно, спасибо вам, буду пробовать
Обсуждают сегодня