安卓Android事件总线EventBus简单使用
2017-03-31 21:16
453 查看
EventBus是的主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息,优点是开销小,代码更优雅。以及将发送者和接收者解耦。
三要素:
1)Event:事件(乘客)
2)Subscriber:订阅者(目的地)
3)Publisher:发布者(汽车站)
另外还要注意的是线程模型(ThreadMode),待会儿会讲。
使用流程:
1.添加依赖:
然后我们讲一下上面提到的线程模型ThreadMode他有四种模式:
1)MAIN(最常用):无论在那个线程发布,事件都会在UI线程执行,该方法可以用来更新UI,但是要避免耗时操作。
2)POSTING:发布线程与处理线程一致,若为UI线程才可以更新UI,所以处理的时候最好判断一下,不推荐在本方法更新UI。
3)ASYNC:无论事件在那个线程发布,事件都会在新线程中执行,禁止更新UI。
4)BACKGROUND:如果发布线程为UI线程,则处理线程会在新线程中,若在子线程中发布,则处理与发布线程一致,禁止更新UI。
好了,关于eventbus简介基本上差不多了,大家可以试试,如有不对的地方请指出,谢谢!!!
三要素:
1)Event:事件(乘客)
2)Subscriber:订阅者(目的地)
3)Publisher:发布者(汽车站)
另外还要注意的是线程模型(ThreadMode),待会儿会讲。
使用流程:
1.添加依赖:
compile 'org.greenrobot:eventbus:3.0.0'2.新建一个类来做为事件
public class MyEventBus { private String msg; public MyEventBus(String msg) { this.msg = msg; } public String fristEvent(){ return msg; } }3.监听事件:EventBus默认是一个单例,可通过getDefault()来获取。首先把作为订阅事件模块通过EventBus注册监听:
EventBus.getDefault().register(this);并且要有一个接收事件的方法,添加Subscrible进行注解:
@Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(MyEventBus eventBus){ Toast.makeText(this,eventBus.fristEvent(),Toast.LENGTH_SHORT).show(); textView.setText(eventBus.fristEvent()); }在模块销毁或者不使用时要进行取消订阅,反注册一波:
@Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); }4.发送事件,不需要进行注册,直接使用post发送就行,在需要发送事件的地方,调用post方法即可:
EventBus.getDefault().post(new MyEventBus("B向A发了一条消息过来"));
然后我们讲一下上面提到的线程模型ThreadMode他有四种模式:
1)MAIN(最常用):无论在那个线程发布,事件都会在UI线程执行,该方法可以用来更新UI,但是要避免耗时操作。
2)POSTING:发布线程与处理线程一致,若为UI线程才可以更新UI,所以处理的时候最好判断一下,不推荐在本方法更新UI。
3)ASYNC:无论事件在那个线程发布,事件都会在新线程中执行,禁止更新UI。
4)BACKGROUND:如果发布线程为UI线程,则处理线程会在新线程中,若在子线程中发布,则处理与发布线程一致,禁止更新UI。
好了,关于eventbus简介基本上差不多了,大家可以试试,如有不对的地方请指出,谢谢!!!
相关文章推荐
- 事件总线EventBus Android开源库的使用
- Android事件总线分发库的使用EventBus(和Otto一样,只是效率高点)
- Android事件总线纷发库EventBus的使用方法
- EventBus事件总线的简单使用
- Android事件总线EventBus 3.0的基本使用
- Android神器:高效事件通信总线EventBus,简例讲解,进阶中高级工程师必看!(附带碎片Fragment高级使用技巧)
- Android学习系列(43)--使用事件总线框架EventBus和Otto
- AndroidEventBus事件总线的使用
- Android事件总线——EventBus的使用
- Android事件总线AndroidEventBus的使用
- android事件总线EventBus3.0简单使用
- Android事件总线 ( AndroidEventBus ) 框架发布
- AndroidEventBus,android事件总线框架
- 事件总线分发库EventBus框架的简单使用
- 【第一篇】学习 android 事件总线androidEventbus之sticky事件的传递
- 【第三篇】学习 android 事件总线androidEventbus之发布事件,子线程中接收
- 使用事件总线框架EventBus和Otto
- Android EventBus发布/订阅事件总线
- 使用事件总线框架EventBus和Otto
- 【第二篇】学习 android 事件总线androidEventbus之异步事件的传递