关于事件总线框架EventBus和otto一些分析总结
2017-03-29 16:21
302 查看
今天上午研究了一下otto,遇到了一个很奇怪的问题,参照官网上的列子把otto的注销写在fragment中的onPause()中,发现其他fragment就接受不到值了,
而写在onStop()或者onDestory()中就没问题。
而且还发现一个问题,otto在活动之间传值,界面跳转方面用起来不是那么方便。参照网友的做法自己写了个列子
没错你没看错,就是设置activity的主题透明。通过这种方法,绕过avtivity1的onstop(),保留Bus没有注销掉;(在activity走完subscribe,执行activity1的onstop())
原因就在于otto传值的时候,需要注册了Bus,并且没有被注销,也就是说大家都拥有bus,形象的说就是大家都在一辆公交车bus才可以互相交谈,
这样才可以在组件之间互相传值
发现这点缺陷后,笔者也没深入研究,而是转向了eventBus,这个最大的事件总线框架果然没令人失望
eventBus使用起来也是很简单的,首先一上来便解决了笔者关于界面传值的问题
关于最几基本的使用,笔者就不啰嗦了,网上一大堆基础教程
这里首先强调一下关于threadModle的四种线程用法
其次,有个点也说下
EventBus的注册和注销与他的subscribe方法是结合一起的,缺一不可
而eventBus的发送是单独发送的,不需要注销,注册
其中发送有两种方式
post()和postSticky()俩种方式,post()是常规的,postSticky()是粘性发送,此方法完美解决了上文activity传值的尴尬
postSticky()粘性发送,是可以允许发送目标去的activity尚未在栈中,当此activity创建后,eventBus注册成功,即可在申明subscribe的方法中取到值(通俗讲就是Intent跳转新界面传值)
使用postSticky不要忘了Subscribe申明方法的时候 sticky=true(随上图)
而写在onStop()或者onDestory()中就没问题。
而且还发现一个问题,otto在活动之间传值,界面跳转方面用起来不是那么方便。参照网友的做法自己写了个列子
没错你没看错,就是设置activity的主题透明。通过这种方法,绕过avtivity1的onstop(),保留Bus没有注销掉;(在activity走完subscribe,执行activity1的onstop())
原因就在于otto传值的时候,需要注册了Bus,并且没有被注销,也就是说大家都拥有bus,形象的说就是大家都在一辆公交车bus才可以互相交谈,
这样才可以在组件之间互相传值
发现这点缺陷后,笔者也没深入研究,而是转向了eventBus,这个最大的事件总线框架果然没令人失望
eventBus使用起来也是很简单的,首先一上来便解决了笔者关于界面传值的问题
关于最几基本的使用,笔者就不啰嗦了,网上一大堆基础教程
这里首先强调一下关于threadModle的四种线程用法
其次,有个点也说下
EventBus的注册和注销与他的subscribe方法是结合一起的,缺一不可
而eventBus的发送是单独发送的,不需要注销,注册
其中发送有两种方式
post()和postSticky()俩种方式,post()是常规的,postSticky()是粘性发送,此方法完美解决了上文activity传值的尴尬
postSticky()粘性发送,是可以允许发送目标去的activity尚未在栈中,当此activity创建后,eventBus注册成功,即可在申明subscribe的方法中取到值(通俗讲就是Intent跳转新界面传值)
使用postSticky不要忘了Subscribe申明方法的时候 sticky=true(随上图)
相关文章推荐
- Android学习系列(43)--使用事件总线框架EventBus和Otto
- 使用事件总线框架EventBus和Otto
- 使用事件总线框架EventBus和Otto
- 事件总线框架EventBus和Otto学习笔记
- 【FastDev4Android框架开发】消息总线EventBus源码分析以及与Otto框架对比(二十一)
- Android 框架学习2:源码分析 EventBus 3.0 如何实现事件总线
- Android开发之浅谈事件总线框架EventBus和Otto
- Android学习系列(43)--使用事件总线框架EventBus和Otto
- 事件总线 —— otto的bus和eventbus对比分析
- 使用事件总线框架EventBus和Otto
- 【ssh2学习记录】3、关于ssh2框架整合以及hibernate的一些总结
- Otto事件总线框架的使用
- js关于事件的一些总结(系列一)
- Android事件总线 ( AndroidEventBus ) 框架发布
- 关于ui的一些总结(参考Qt4精彩实例分析)
- 关于抽象代数(16、17)中一些零散概念间联系的个人分析总结
- EventBus,一个可以在Activity、Fragment、Service之间传递任意类型数据的事件总线框架
- 事件总线框架---Otto,总线框架---otto
- 事件总线框架---Otto
- 事件总线框架---Otto