Android 消息分发使用EventBus的实例详解
作者:lqh 发布时间:2022-12-23 06:28:28
标签:Android,EventBus
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
0
投稿
猜你喜欢
- =====最大线程数====linux 系统中单个进程的最大线程数有其最大的限制 PTHREAD_THREADS_MAX这个限制可以在 /u
- 这个比较简单,但是刚用as不久的朋友可能不知道。这里也不啰嗦了,给两张图就全懂了按ctrl+alt+s打开设置面板选择 Version &n
- 使用resilience4j的库和Spring Boot设计高弹性的微服务。微服务本质上是分布式的。当您使用分布式系统时,请始终记住这一第一
- 什么是Java类库在编写程序的时候,通常有很多功能是通用的,或者是很基础的,可以用这些功能来组成更发杂的功能代码。比如文件操作,不同程序对文
- 从Microsoft .Net 2.0版本以后,就默认提供了System.IO.Ports.SerialPort类,用户可以非常简单地编写少
- Springboot整合RockerMQ1、maven依赖<dependencies> <!--
- java中字符串转整数及MyAtoi方法的实现 该题虽然和我们正常使
- SpringBoot 动态修改Scheduled场景:可配置的 Scheduled 执行时间,正常的 Scheduled 是在项目启动的时候
- 本文实例为大家分享了C#实现PC蓝牙通信代码,供大家参考,具体内容如下添加引用InTheHand.Net.Personal.dll首先创建一
- 概览阿里巴巴在2018年7月份发布Nacos, Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。并表示在6-8个
- SpringMVC路径匹配中使用通配符@RequestMapping中指定的路径也可以使用通配符*表示任意字符。如下的处理器方法可以映射请求
- 1 内部类概述如果一个类存在的意义就是为指定的另一个类,可以把这个类放入另一个类的内部。就是把类定义在类的内部的情况就可以形成内部类的形式。
- 初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法:public native int hash
- import java.util.Calendar;import java.util.Date;public class Matrix {&
- 效果图,每隔1秒,变换一下时间 xml: <RelativeLayout xmlns:android="http
- 问题是这样的在开发时,为了节约时间,我选择了mybatis框架来开发,然后又在网上找了一个许多人都推荐的mybatis-plus来作为持久层
- 在编写脚本的过程中我们会遇到一些小问题比如一个的变量 为了在其他脚本中可以调用 我们需要写成public类型的这样的话在Inspector面
- 我们平时在开发系统时,一般我们的系统工程会被分为多个模块,一个原因是方便协同开发,系统间解耦,另外一个很重要的原因是:别的系统需要依赖我们系
- 一、简介JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCa
- 一、 简介Opitonal是java8引入的一个新类,目的是为了解决空指针异常问题。本质上,这是一个包含有可选值的包装类,这意味着 Opti