为什么要停止使用EventBus?下面这个GitHub上项目提到了EventBus的一些不足之处。
https://github.com/hehonghui/android-tech-frontier/blob/master/issue-16/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%A0%E5%BA%94%E8%AF%A5%E5%81%9C%E6%AD%A2%E4%BD%BF%E7%94%A8EventBus.md
本篇文章讲解如何用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()这个方法可以准确的告诉我们。