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


猜你喜欢
- 本文实例讲述了C#数据绑定(DataBinding)简单实现方法。分享给大家供大家参考。具体实现方法如下:using System;usin
- C#中保存Session的三种方法及Web.Config设置保存session到sql server;,需要指定Sql Server;服务器
- 一、什么是封装?封装就是将属性私有化,提供公有的方法访问私有属性。做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(g
- 最好使用英文,不要用汉语拼音1:包(package):用于将完成不同功能的类分门别类,放在不同的目录(包)下,包的命名规则:将公司域名反转作
- bind函数定义在头文件 functional 中。可以将 bind 函数看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用
- 经过各种各样的整理,以及和热心网友讨论,终于整理出了九种android开发中最常见的问题和解决方案再次跟大家分享下!!有用的话请顶顶帖子,共
- 1、WebView类提供的常用方法2、WebView的简单用法实现浏览网页步骤:布局文件<WebView
- 错误处理到目前为止,我们都没怎么介绍onComplete()和onError()函数。这两个函数用来通知订阅者,被观察的对象将停止发送数据以
- 本文实例汇总了Java文件操作。分享给大家供大家参考,具体如下:1.创建文件夹//import java.io.*; File myFold
- 创建新的项目的时候,文件名一直追加,不分层对于刚用idea的小白,这个问题困扰了我好几天了,幸好现在还不怎么敲代码,下面给一个详细的解决方案
- Java实现驼峰、下划线互转1.使用 Guava 实现先引入相关依赖<dependency> <
- 公司的以前的项目,看到使用了这个Android自带的倒计时控件Chronometer,现在整合了一下先看看效果:<Chronomete
- 一、代码结构:二、数据实体类:using System;using System.Collections.Generic;using Sys
- 刚开始学习Service的时候以为它是一个线程的封装,也可以执行耗时操作。其实不然,Service是运行在主线程的。直接执行耗时操作是会阻塞
- 介绍Java状态模式(State Pattern)是一种面向对象的设计模式,它将对象的状态封装成独立的状态对象,并将对象的行为与状态对象解耦
- Java ThreadPoolExecutor的参数深入理解一、使用Executors创建线程池 &nb
- 由于我经常下载一些pdf格式的电子书,有的时候一些好书下载下来没有书签,读起来感觉没有整体的感觉,所以决定自己写一个小工具,将特定格式的文本
- 本文实例讲述了Android数据库中事务操作方法之银行转账功能。分享给大家供大家参考,具体如下:主javapackage com.ithei
- 目录Swagger 简介配置 Swagger添加依赖为项目开启 Swagger创建 SwaggerConfig 配置类访问 Swagger
- 目录synchronized 实现原理适应性自旋(Adaptive Spinning)锁升级Java 对象头偏向锁(Biased Locki