и всякие Observer для UI элементов все хорошо и все работает как часики
но вот сложилась ситуация что я хочу воспользоваться данными в LiveData внутри DataModel которая как вы понимаете синглтон и у нее нет UI а значит и нет LifecycleOwner
как мне сделать подписывание на LiveData внитри DataModel и при определенных условиях отписаться от данных? (ну например я получил не null)
перемещайся на флоу
observeforever
это я пробовал, может мне знаний в котлине пока не хватает не могу понять как отписаться внутри обзервера
Не отписываться. Или отписаться извне
ок, но уже собрал врапер
незнаю насколько красивый)))): class PartEventHolder(event: String, uuid: String, force:Boolean=false, val handler: (PartEventHolder, RBFParticipationEvent) -> Unit): LoadPartEvent(event,uuid,force) { private var statusObserver: Observer<RBFParticipationEvent?> init { statusObserver = Observer<RBFParticipationEvent?> { it?.let { handler(this,it) } } LoadPartEvent(event,uuid).observeForever(statusObserver) } fun distroy(){ LoadPartEvent(event, uuid).removeObserver(statusObserver) } }
Обсуждают сегодня