EventBus官方教程

2018-05-07  本文已影响0人  虎三呀

说明 :

本文翻译自官网,如英文较好者可自行去官网查看,本文如有错误,往众大神多多指出!

英文能力差,理解能力差(本人翻译生硬),想快速入门,可看我另一篇博客一篇搞定EventBus

事件总线:Android事件

EventBus是一个开源库的Android和java使用发布/订阅为 松耦合模式。EventBus使中央通信能够用几行代码解耦类——简化代码,消除依赖关系,加速应用程序开发。


你使用EventBus的好处:

进一步事件总线特性

事件特征集.

将EventBus添加到您的项目中

EventBus可在JCenter和Maven Central上使用,因此只需将依赖项添加到项目中即可。

EventBus开始使用

使用EnvestBUS的第一步,请单击 documentation / tutorial
, 特别是getting started guide.
以上便是官方文档翻译而来

如何在3个步骤中启动EnvestBUS

EnviBus API与1-2-3一样容易。
在我们开始之前 确保将EnviBUS添加到项目中作为依赖项.

Step 1: 定义事件

事件是POJO (普通java对象)没有任何具体的要求。

public class MessageEvent {

    public final String message;

    public MessageEvent(String message) {
        this.message = message;
    }
}

第2步:准备subscribers

订阅服务器实现事件处理方法 (也称为 “subscriber methods”) 这将在事件发布时被调用。这些都是用 @Subscribe annotation.
注意,EnvestBUS 3可以自由选择方法名称(如EnvestBUS 2中没有命名约定)。

// 当发布消息事件时,将调用此方法(在ToST的UI线程中)
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {
    Toast.makeText(getActivity(), event.message, Toast.LENGTH_SHORT).show();
}
 
// 当发布某个事件时,将调用此方法。
@Subscribe
public void handleSomethingElse(SomeOtherEvent event) {
    doSomethingWith(event);
}

Subscribers 需要 注册注销 从事件总线上. 只有注册用户时,他们将收到事件.在Android中,在活动和片段中,你通常应该注册 根据它们的生命周期. 大多数情况下,启动/停止都可以正常工作。:

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

第三步:发布事件
从代码的任何部分发布事件。所有与事件类型匹配的当前注册用户将接收它。

EventBus.getDefault().post(new MessageEvent("Hello everyone!"));

Learn more

Have a look at the full documentation to learn about all features of EventBus.

上一篇 下一篇

猜你喜欢

热点阅读