您的位置:首页 > 移动开发 > Android开发

(原创)简单介绍Android的EventBus(上)

2017-01-04 11:01 281 查看
在不同的Activity间通信,你会想到什么呢?Intent,或者BroadcastReceiver。今天,我就来介绍一款更好用的小工具——EventBus。为求你看完这篇博客后就能用,所以不做深入介绍,只介绍常用的用法。

EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。

使用之前,要进行相关的配置,代码如下

compile 'org.greenrobot:eventbus:3.0.0'

配置完成后,就开始基本的使用了

第一步

//注册EventBus,通常在onStrat方法中执行

EventBus.getDefault().register(this);

第二步

//注销EventBus,通常在onStop方法中注销

EventBus.getDefault().unregister(this);

第三步

//在某一个地方进行消息发送(通常是在另一个组件中,例如activity、fragment等)

EventBus.getDefault().post(Object);

注意:在发送的页面是不需要注册以及取消注册的,只需要这一行代码即可。

如果多加了第一步和第三步的话,就必须加上第四步保证接收操作。

否则则会出现错误。

第四步

//接收到发送的消息

@Subscribe

public void onEvent(Object obj){

    Log.d(TAG, "onEventMainThread: 接受到消息:" + Object);

}

关于@Subscribe

这个标志有三个比较重要的属性,可以在它后面的括号里进行设置

threadMode:声明事件订阅函数的执行模式

sticky:表示该事件订阅函数是否接收粘性事件,默认为false,表示不接收

priority:声明事件订阅函数的事件接收优先级,默认为0

关于EventBus最简单的使用就先介绍到这里,下一章将会介绍一下EventBus的粘性事件的接受与发送,谢谢大家。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: