Singleton
和几个LiveData
用于观察和发布的最佳方法是什么?
Object:
object EventsObj {
private val _actionLiveData = MutableLiveData<...>()
val actionLiveData: LiveData<...> = _actionLiveData
fun postActionEvent(value: ...) {
_actionLiveData.postValue(value)
}
... //few more LiveDatas following the same logic
}
或Dagger:
@Singleton
class EventsClass
@Inject constructor() {
private val _actionLiveData = MutableLiveData<...>()
val actionLiveData: LiveData<...> = _actionLiveData
fun postActionEvent(value: ...) {
_actionLiveData.postValue(value)
}
... //few more LiveDatas following the same logic
}
用途:
@Inject
lateinit var eventsClass: EventsClass
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
eventsClass.actionLiveData.observe(this, ...)
eventsClass.postActionEvent(...)
EventsObj.actionLiveData.observe(this, ...)
EventsObj.postActionEvent(...)
}
与Oject Kotlin合作将简化您的生活。它更容易调用。无需创建依赖关系并编写其他代码。