栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

EventBus 源码解析系列(如何使用)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EventBus 源码解析系列(如何使用)

1 EventBus.getDefault().register(this);//在需要接收事件类 注册eventbus

 2  在需要接收事件类 来写接受事件的方法,用@Subscribe 注解

@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(Object event) {

}

注:ThreadMode.POSTING  默认,表示事件处理函数的线程跟发布事件的线程在同一个线程。

ThreadMode.MAIN 表示事件处理函数的线程在主线程(UI)线程,因此在这里不能进行耗时操作。

ThreadMode.MAIN_ORDERED在 Android 上,订阅者将在 Android 的主线程(UI 线程)中被调用。 与 MAIN 不同的是,事件将始终排队等待传递。 这确保了 post 调用是非阻塞的。

ThreadMode.BACKGROUND:表示事件处理函数的线程在后台线程,因此不能进行UI操作。如果发布事件的线程是主线程(UI线程),那么事件处理函数将会开启一个后台线程,如果果发布事件的线程是在后台线程,那么事件处理函数就使用该线程。

ThreadMode.ASYNC 表示无论事件发布的线程是哪一个,事件处理函数始终会新建一个子线程运行,同样不能进行UI操作。

3 发送事件

 EventBus.getDefault().post(new ConstantEvent(13));
注:本文章的 ConstantEvent 指的是 事件通信的一个消息体,由开发者自己定义
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667855.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号