Android 消息分发使用EventBus的实例详解
作者:lqh 时间:2022-12-23 06:28:28
Android 消息分发使用EventBus的实例详解
1. AndroidStudio使用
dependencies {
//最新版本
compile 'org.greenrobot:eventbus:3.0.0'
//可以翻倍提高EventBus使用效率
provided 'de.greenrobot:eventbus-annotation-processor:3.0.0-beta1'
}
2. 在基类Activity中配置
/**
* Activity基类
*/
protected EventBus eb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//单例模式获取到实例并注册
eb = EventBus.getDefault();
eb.register(this);
}
@Override
protected void onDestroy() {
//反注册
eb.unregister(this);
super.onDestroy();
}
//主线程
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMainEvent(EventBean event) {
}
//主线程 粘性(比如传递intent使用)
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onMainStickEvent(EventBean event) {
}
//后台
@Subscribe(threadMode = ThreadMode.BACKGROUND)
public void onBackgroundEvent(EventBean event) {
}
//重新开启一个线程来执行
@Subscribe(threadMode = ThreadMode.ASYNC)
public void onAsyncEvent(EventBean event) {
}
一般情况下,常用重写onMainEvent ( ) 方法即可。
3. 创建自定义消息实体
//根据不同需求自定义
/**
* 自定义Event消息
*/
public class EventBean {
public int id;//类型标识
public Object data;//数据对象
//省略constructor & getter & setter
}
4. 发送消息
继承自基类Activity后:
eb.post(new EventBean(1, "data"));
//粘性
eb.postSticky(new EventBean(1, "data"));
5. 消息处理
根据数据处理的需求重写基类的4个方法即可。
来源:http://blog.csdn.net/baidu_25797177/article/details/51783213
标签:Android,EventBus
0
投稿
猜你喜欢
java安全编码指南之:表达式规则说明
2021-06-01 17:48:44
WPF ComboBox获取当前选择值的实例详解
2022-02-09 17:26:23
SpringBoot项目的配置文件中设置server.port不生效问题
2022-11-13 06:01:26
Unity使用摄像机实现望远镜效果
2021-06-07 23:30:26
spring boot项目打包成war在tomcat运行的全步骤
2023-12-17 19:20:36
关于Mybatis-Plus Update更新策略问题
2022-04-14 19:29:24
android中RecyclerView自定义分割线实现
2023-08-03 17:37:47
Java使用JavaMail API发送和接收邮件的代码示例
2022-09-02 01:15:51
Java中用enum结合testng实现数据驱动的方法示例
2021-08-04 07:44:21
Kotlin + Flow 实现Android 应用初始化任务启动库
2023-05-23 12:58:28
Android 自定义 Toast 显示时间
2022-01-22 23:22:06
Android 图片切换器(dp、sp、px) 的单位转换器
2022-04-25 02:48:06
Android自定义view实现圆形、圆角和椭圆图片(BitmapShader图形渲染)
2022-10-08 07:51:35
java8 实现提取集合对象的每个属性
2023-10-17 19:37:27
C++中左值和右值的区别详解
2021-09-11 00:07:42
详解netty中的frame解码器
2022-02-22 14:40:21
Android7.0 工具类:DiffUtil详解
2023-02-24 01:43:46
SSM框架整合之junit测试的方法
2022-11-12 16:03:19
Android如何在原生App中嵌入Flutter
2022-03-11 17:06:06
java实现动态代理示例分享
2023-04-28 15:54:49