分享

【技术】EventBus使用

 爱开发 2022-08-02 发布于广东

如果你想第一时间收到类似的文章

点击上面蓝色字体「爱开发」关注即可

关于EventBus作为一枚Android开发者,相信应该都听说过。要是用过就请忽略本文,本文讲得比较基础。
要是没用过没关系,看了本文你就会使用EventBus了。

目前EventBus最新版本是3.0,本demo基于3.0编写。

GitHub :

 https://github.com/greenrobot/EventBus
官方文档:

http:///eventbus/documentation

一、EventBus概述

EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。

作为一个消息总线主要有三个组成部分:

  • 事件(Event)

  • 事件订阅者(Subscriber)

  • 事件发布者(Publisher)



二、EventBus用法

1、把EventBus依赖到项目

build.gradle添加引用

compile 'org.greenrobot:eventbus:3.0.0'

Maven

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

或者直接下载EventBus 架包jar 放到项目中

2、构造发送消息类,也就是发送的对象
public class MainMessage{    private String message;    public String getMessage() {        return message;
    }    public void setMessage(String message) {        this.message = message;
    }
}
3、注册/解除注册
EventBus.getDefault().register(this);//注册

EventBus.getDefault().unregister(this);//解除注册
4 、发送消息
EventBus.getDefault().post(new MainMessage("你好,爱开发");
5 、事件处理
//ui主线程中执行  

@Subscribe(threadMode = ThreadMode.Main) public void onMainEventBus(MainMessage msg) {   }
6、priority事件优先级
//priority越大,级别越高

@Subscribe(threadMode = ThreadMode.MAIN,priority = 100) public void onEvent(MainMessage event) { }
7、终止事件传递
// 注意中止事件传递,后续事件不在调用

@Subscribepublic void onEvent(MessageEvent event){    EventBus.getDefault().cancelEventDelivery(event) ; }

[END]

为什么有的人工作多年还是老样子

程序员月薪多少才不会焦虑


如果你想第一时间收到类似的文章

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多