基于Android LiveData/Lifecycle 实现的事件总线 ,兼容 AndroidX
该库已上传至 jcenter
implementation 'com.github.lwjfork:livedata-bus:1.0.0'
LiveDataBus
.get()
.autoClear(true) // 配置是否自动清理无订阅的LiveData。默认为 true
.configExecutor(new DefaultTasksExecutor()) // 若无配置,使用默认调度器
LiveDataBus
.get()
.autoClear(true)
LiveDataBus
.get()
.configExecutor(new DefaultTasksExecutor())
// 订阅事件
LiveDataBus.get()
.with(BusCode.COMMON_CODE)
.observe(owner,new Observer<Objcet>(){
@Override
public void onChanged(Object o) {
}
})
// 发送事件
LiveDataBus.get().sentEvent(BusCode.COMMON_CODE)
// 订阅事件 ,接受自定义数据
LiveDataBus.get()
.with(BusCode.COMMON_CODE,String.class)
.observe(owner,new Observer<String>(){
@Override
public void onChanged(String o) {
}
})
// 发送事件 ,发送自定义数据
LiveDataBus.get().sentEvent(BusCode.COMMON_CODE,"testBusEvent")
- 永久订阅中,可以手动移除 Oberver ,防止内存泄漏
// 订阅事件
LiveDataBus.get()
.with(BusCode.COMMON_CODE)
.observeForever(new Observer<Objcet>(){
@Override
public void onChanged(Object o) {
}
})
// 发送事件
LiveDataBus.get().sendEvent(BusCode.COMMON_CODE)
// 订阅事件 ,接受自定义数据
LiveDataBus.get()
.with(BusCode.COMMON_CODE,String.class)
.observeForever(new Observer<String>(){
@Override
public void onChanged(String o) {
}
})
// 发送事件 ,发送自定义数据
LiveDataBus.get().sendEvent(BusCode.COMMON_CODE,"testBusEvent")
// 订阅事件
LiveDataBus.get()
.with(BusCode.COMMON_CODE)
.observeSticky(owner,new Observer<Objcet>(){
@Override
public void onChanged(Object o) {
}
})
// 发送事件
LiveDataBus.get().sendStickyEvent(BusCode.COMMON_CODE)
// 发送事件
// LiveDataBus.get().postStickyEvent(BusCode.COMMON_CODE)
// 订阅事件 ,接受自定义数据
LiveDataBus.get()
.with(BusCode.COMMON_CODE,String.class)
.observeSticky(owner,new Observer<String>(){
@Override
public void onChanged(String o) {
}
})
// 发送事件 ,发送自定义数据
LiveDataBus.get().sendStickyEvent(BusCode.COMMON_CODE,"testBusEvent")
// LiveDataBus.get().postStickyEvent(BusCode.COMMON_CODE,"testBusEvent")
- 永久订阅中,可以手动移除 Oberver ,防止内存泄漏
// 订阅事件
LiveDataBus.get()
.with(BusCode.COMMON_CODE)
.observeStickyForever(new Observer<Objcet>(){
@Override
public void onChanged(Object o) {
}
})
// 发送事件
LiveDataBus.get().sendStickyEvent(BusCode.COMMON_CODE)
// LiveDataBus.get().postStickyEvent(BusCode.COMMON_CODE)
// 订阅事件 ,接受自定义数据
LiveDataBus.get()
.with(BusCode.COMMON_CODE,String.class)
.observeStickyForever(new Observer<String>(){
@Override
public void onChanged(String o) {
}
})
// 发送事件 ,发送自定义数据
LiveDataBus.get().sendStickyEvent(BusCode.COMMON_CODE,"testBusEvent")
// LiveDataBus.get().postStickyEvent(BusCode.COMMON_CODE,"testBusEvent")