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

EventBus 3.0 从入门到精通——初识EventBus

2017-06-28 17:46 267 查看
文章索引:

EventBus 3.0 从入门到精通——初识EventBus

EventBus 3.0 从入门到精通——EventBus的应用场景

EventBus 3.0 从入门到精通——使用详解(一)

EventBus 3.0 从入门到精通——使用详解(二)

最近接手了一个项目,发现项目中有使用EventBus,因为之前只是泛泛的了解,没有深入学习过,所以借着这次机会就往深了了解一下,分享出来与大家共勉。先看看GitHub上的介绍吧。

EventBus的GitHub地址

EventBus简介

eventbus是一个针对Android优化的发布/订阅事件总线。



EventBus的特点:

简化组件之间的通信

事件的发送者和接收者解耦

对于Activities, Fragments和后台线程的支持表现更好

避免了复杂并且易出错的依赖和生命周期的问题(ps:这里的依赖我理解就是解耦的意思)

是你的代码更加简单

更加快速

体积更小

已经有超过100,000,000+的apps安装使用

有线程传送和优先订阅等高级特性

向你的project中添加EventBus

通过Gradle

compile 'org.greenrobot:eventbus:3.0.0'


通过Maven

<dependency>
<groupId>org.greenrobot</groupId>
<artifactId>eventbus</artifactId>
<version>3.0.0</version>
</dependency>


只用三个步骤开始使用EventBus

定义事件

public static class MessageEvent { /* 添加需要的代码 */ }


创建订阅者:声明一个订阅者,并且用注解标注它。之后再指定一个线程模式

@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {/* Do something */};


注册和反注册你的订阅者。举个例子在Android中通常可以在Activity和Fragment的声明周期方法中使用。

@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}

@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}


发布事件

EventBus.getDefault().post(new MessageEvent());


以上是GitHub上官方的一个描述,通过上面的简单的几个步骤我们就可以先把EventBus使用起来,但是上面没有提及EventBus的使用场景以及一些高级特性,我会在下面的文章中为大家总结出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android