-
Notifications
You must be signed in to change notification settings - Fork 2
LiveEvent
rongc edited this page Jul 10, 2021
·
1 revision
基于LiveData实现的事件总线。拥有生命周期感知能力,不需要时自动移除。
只接收订阅后发送的消息
// 发送普通事件
"eventName".liveBus<String>().setValue("value")
// 订阅
"eventName".liveBus<String>().observe(owner) {
// it.logd()
}
订阅时也能收到最近依次发送的消息
// 发送黏性事件
"eventName".liveBus<String>().setStickyValue("value")
// 订阅
"eventName".liveBus<String>().observerSticky(owner, true) {
// it.logd()
}
同一个Event只会接收到回调一次
val event = Event("content")
val liveData = LiveData<Event<String>>()
liveData.value = event
LiveData.observeOnce(owner) {
// it.content == "content"
}
// 之后的更新不会被接收
liveData.value = event
发送的事件不会丢失,如果订阅者处于非激活状态时发送了多个事件,在回到激活状态后将依次收到之前发送的所有事件
LiveData.observeAll(owner) {
}