Size: a a a

Android Developers

2020 December 02

DS

Daniel Sergeev in Android Developers
Еще раз задам свой вопрос: как получить все эффекты подписчику на LiveData, который подписался позже?
источник

d

danilshik in Android Developers
Daniel Sergeev
Еще раз задам свой вопрос: как получить все эффекты подписчику на LiveData, который подписался позже?
а разве он не получит состояние liveData на момент подписки?
источник

DS

Daniel Sergeev in Android Developers
Он получит последний эффект, их могло быть несколько
источник

d

danilshik in Android Developers
Daniel Sergeev
Он получит последний эффект, их могло быть несколько
А что вы собираетесь там хранить?
источник

DS

Daniel Sergeev in Android Developers
Эффекты MVI: открыть диалог, показать снэкбар, сходить в сеть
источник

SE

Sobolev Erik in Android Developers
Daniel Sergeev
Еще раз задам свой вопрос: как получить все эффекты подписчику на LiveData, который подписался позже?
Ты имеешь ввиду вообще все что были, есть сейчас, и будут в будущем? Если так, то можете ливдату заменить на rx. Там есть оператор для этого
источник

D

DaniilQ in Android Developers
источник

d

danilshik in Android Developers
Daniel Sergeev
Эффекты MVI: открыть диалог, показать снэкбар, сходить в сеть
Разме навигацию и всякие toast не нужно в SingleEvent Хранить?
источник

D

DaniilQ in Android Developers
Подскажите библиотеку на Java
источник

d

danilshik in Android Developers
DaniilQ
Подскажите библиотеку на Java
источник

DS

Daniel Sergeev in Android Developers
Я использую корутины и я в них профан)

SingleEvent не решает проблему доставки пропущенных событий
источник

DS

Daniel Sergeev in Android Developers
val liveData = BroadcastChannel<Effect>(Channel.BUFFERED).asFlow().asLiveData()
onCreate() {
     liveData.observe(this) { effect ->
     }
}
источник

D

DaniilQ in Android Developers
Спс
источник

DS

Daniel Sergeev in Android Developers
У меня примерно такой код, при подписке доставляется только последнее событие
источник

DS

Daniel Sergeev in Android Developers
Это характерно для liveData, хранящей только последнее состояние, так и должно работать
источник

DS

Daniel Sergeev in Android Developers
Вопрос, как правильно писать, чтобы событие не терялось?)
источник

DS

Daniel Sergeev in Android Developers
Думаю в сторону отказа от LiveData и выполнения channel.collect в onCreate, с ручной отпиской
Но мне все это не нравится
источник

DS

Daniel Sergeev in Android Developers
Кто сталкивался, киньте статейку с правильной практикой, пожалуйста
источник

QH

Quantum Harmonizer in Android Developers
Daniel Sergeev
Думаю в сторону отказа от LiveData и выполнения channel.collect в onCreate, с ручной отпиской
Но мне все это не нравится
можешь запилить байндинг к ЖЦ, как у лайвДаты
источник

DS

Daniel Sergeev in Android Developers
+ если использовать collect - не решится проблема дублирования

Тогда уж лучше запилить очередь, в которую класть события и удалять при обработке
источник