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
  • asp之家 软件编程 m.aspxhome.com