使用 LiveData 实现 EventBus
Google IO 2017 推出了 Android Architecture Components ,着重处理 Android 开发中的生命周期问题。其中一个有意思的组件叫做 LiveData ,它在把数据的更新行为变为可观测的对象的同时,与 Activity/Fragment 的生命周期绑定,使得我们不再需要关心与生命周期相关的回调问题。
如果你经常使用 RxBus 配合 RxLifecycle ,你一定知道我在说什么。有了 LiveData ,我们可以用更「原生」的方式实现 EventBus ,我们可以把这样的实现称为 LiveBus 。下面来看看 LiveBus 的实现吧:
import android.arch.lifecycle.MutableLiveData; |
然后你就可以在任何地方开始使用 LiveBus 啦:
// 在**非主线程**中使用 postValue() |
现阶段必须配合 LifecycleActivity/LifecycleFragment 才能使用 LiveBus 。Google 官方表示,在相关实现稳定后,就会合并到 support 库的实现中,届时我们就可以很方便地使用 LiveBus 啦。