博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EventBus 的简单使用
阅读量:4285 次
发布时间:2019-05-27

本文共 1767 字,大约阅读时间需要 5 分钟。

1. 简介

EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。

这里写图片描述

2. 下载地址

3. 使用步骤

3.1 添加jar包到libs文件夹下

3.2 注册

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    EventBus.getDefault().register(this);}

3.3 解注册

@Overrideprotected void onDestroy() {    super.onDestroy();    EventBus.getDefault().unregister(this);}

3.4 构建发送消息类

public class MessageEvent {    public String name;    public String password;    public MessageEvent(String name, String password) {        this.name = name;        this.password = password;    }}

3.5 发布消息

EventBus.getDefault().post(new MessageEvent("dahaige","123456"));

3.6 接收消息

@Subscribe(threadMode = ThreadMode.MAIN)    public void messageEventBus(MessageEvent event){        tv_result.setText("name:"+event.name+" passwrod:"+event.password);    }ThreadMode.MAIN 表示这个方法在主线程中执行ThreadMode.BACKGROUND 表示该方法在后台执行,不能并发处理ThreadMode.ASYNC 也表示在后台执行,可以异步并发处理。ThreadMode.POSTING 表示该方法和消息发送方在同一个线程中执行

4. 粘性事件

之前说的使用方法, 都是需要先注册(register), 再post,才能接受到事件;

如果你使用postSticky发送事件, 那么可以不需要先注册, 也能接受到事件.

4.1 构建发送消息类

public class StickyEvent {    public String msg;    public StickyEvent(String msg) {        this.msg = msg;    }}

4.2 发送消息

EventBus.getDefault().postSticky(new StickyEvent("我是粘性事件"));

4.3 接收消息(sticky = true)

//注意,和之前的方法一样,只是多了一个 sticky = true 的属性.    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)    public void onEvent(StickyEvent event){        tv_c_result.setText(event.msg);    }

4.4 注册

EventBus.getDefault().register(CActivity.this);

4.5 解注册

EventBus.getDefault().removeAllStickyEvents();EventBus.getDefault().unregister(CActivity.class);
你可能感兴趣的文章
swift之视频播放AVKIT、AVPlayerViewController、音频录制和播放
查看>>
android之res/menu
查看>>
android之通知Notification
查看>>
android 之常用功能发短信、接受短信
查看>>
android 之意图Intent的使用
查看>>
android之内容观察者ContentResolver
查看>>
android之延迟执行的几种方法
查看>>
android保存内容到xml中、解析xml
查看>>
android之对话框、单选,多选,进度条,日期选择对话框,时间选择对话框
查看>>
android 之从操作sqlite
查看>>
nodejs之express详解
查看>>
android之常见问题集合和注意事项
查看>>
adroid之加密算法md5
查看>>
android之drawable文件的设置selector、shape
查看>>
android之手势、touch事件流程、事件传递机制
查看>>
android之res/values、国际化
查看>>
android之一键锁屏、开启管理员权限、取消权限、卸载应用、开启应用
查看>>
android之判断服务是否再运行ActivityManager
查看>>
android之自定义组合控件
查看>>
android之土司的触摸点击事件
查看>>