EventBus使用详解(一)——初步使用EventBus

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

2、基本使用

(1)自定义一个类,可以是空类,比如:

[java] view plain copy 在CODE上查看代码片派生到我的代码片
public class AnyEventType {
public AnyEventType(){}
}
(2)在要接收消息的页面注册:

[java] view plain copy 在CODE上查看代码片派生到我的代码片
eventBus.register(this);
(3)发送消息

[java] view plain copy 在CODE上查看代码片派生到我的代码片
eventBus.post(new AnyEventType event);
(4)接受消息的页面实现(共有四个函数,各功能不同,这是其中之一,可以选择性的实现,这里先实现一个):

[java] view plain copy 在CODE上查看代码片派生到我的代码片
public void onEvent(AnyEventType event) {}
(5)解除注册
[java] view plain copy 在CODE上查看代码片派生到我的代码片
eventBus.unregister(this);
顺序就是这么个顺序,可真正让自己写,估计还是云里雾里的,下面举个例子来说明下。
首先,在EventBus中,获取实例的方法一般是采用EventBus.getInstance()来获取默认的EventBus实例,当然你也可以new一个又一个,个人感觉还是用默认的比较好,以防出错。

二、实战
先给大家看个例子:
当击btn_try按钮的时候,跳到第二个Activity,当点击第二个activity上面的First Event按钮的时候向第一个Activity发送消息,当第一个Activity收到消息后,一方面将消息Toast显示,一方面放入textView中显示。
EventBus使用详解(一)——初步使用EventBus_第1张图片

按照下面的步骤,下面来建这个工程:

1、基本框架搭建
想必大家从一个Activity跳转到第二个Activity的程序应该都会写,这里先稍稍把两个Activity跳转的代码建起来。后面再添加EventBus相关的玩意。

MainActivity布局(activity_main.xml)

[html] view plain copy 在CODE上查看代码片派生到我的代码片

你可能感兴趣的:(Android)