Всем привет.
Вот типичаня ситуация, во ViewModel вы подписываетесь на Observable из БД и периодически получаете какой-то объект, допустим, UserSettings,
и кладёте его в глобальную переменную, к которой вы много раз обращаетесь в коде, например, делая проверки, типо if userSettings.что-то == чему-то, когда юзер нажимает кнопку и тд.
Мой вопрос про потоки. Есть ли смысл класть UserSettings в глобальную переменную исключательно в основном потоке? (с учётом того, что все вышеописанные проверки делаются в основном потоке)
Или это не имеет большого смысла, типо тут от race condition не уйдёшь, или есть какой-то другой подход, или я, вообще, что-то упускаю?
var userSettings = UserSettings.default()
repository.getUserSettings()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext { userSettings = it }
или
.observeOn(AndroidSchedulers.mainThread())
можно убрать?