为什么要停止使用EventBus?下面这个GitHub上项目提到了EventBus的一些不足之处。
本篇文章讲解如何用RXJava替代EventBus进行事件的分发。
下面讲解的是RXjava是什么?以及如何应用到项目中。
http://gank.io/post/560e15be2dca930e00da1083
正文:如何用RXjava替代EventBus进行事件的分发
这是GitHub上的Demo
https://github.com/kaushikgopal/RxJava-Android-Samples
定义一个类
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
好了,现在你有一个EventBus准备好用了。
下面显示如何将一个Event发布到Bus上
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 2 3 4 5 | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面显示你如何在Activity,Fragment,Service中监听Bus上的Event
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
DEAD EVENTS
如果应用程序处于打开状态(因此有至少1或更多听众的总线)我们不发送推送通知,但如果他们有应用程序在后台,然后我们发送聊天消息的推送通知,让他们知道聊天消息。
如果一个事件发送到Bus上,并且没有Listeners监听,那么一个DEAD EVENTS就会被返回。这样的话监听这个DEAD EVENTS就会显得非常重要了。当应用在background时候发送通知而不是在foreground的时候发送通知,这种情况用RxJava如何实现呢?
很简单,hasObservers()这个方法可以准确的告诉我们。