aleyn97 / MVVMLin

一个基于MVVM用Kotlin+Retrofit+协程+Databinding+LiveData来封装的快速开发框架
Apache License 2.0
695 stars 105 forks source link

fragment replace 后livedata重复接收数据问题 #31

Closed cjcj125125 closed 8 months ago

cjcj125125 commented 2 years ago

您好,很感谢你的库,让我学到了很多东西,但是再使用fragment时候发现replace (共享viewmodel)模式会导致观察者重复收到数据,请问下这个有解决方案吗?

aleyn97 commented 2 years ago

LiveData 是有粘性事件的,共享 ViewModel的时候 ViewModel 的生命周期是跟父级相同的,replace fragment 的时候 会触发 LiveData 粘性事件,可以用 MutableSharedFlow 来替代 LiveData , MutableSharedFlow 的replay 默认是 0 ,是没有粘性事件的