Android 消息分发使用EventBus的实例详解

 更新时间:2017年07月28日 09:44:00   投稿:lqh  
这篇文章主要介绍了Android 消息分发使用EventBus的实例详解的相关资料,在项目中用了许多Handler和broadcast导致代码冗余,显得杂乱无章,这里使用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个方法即可。

以上就是Android 消息分发使用EventBus的实例,如有疑问请留言或者到本站社区交流讨论,本站关于Android的文章还有很多希望大家搜索查阅,谢谢大家对本站的支持!

相关文章

  • Android编程实现点击EditText之外的控件隐藏软键盘功能

    Android编程实现点击EditText之外的控件隐藏软键盘功能

    这篇文章主要介绍了Android编程实现点击EditText之外的控件隐藏软键盘功能,涉及Android控件的功能、属性及相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • Android三种方式实现ProgressBar自定义圆形进度条

    Android三种方式实现ProgressBar自定义圆形进度条

    这篇文章主要介绍了Android三种方式实现ProgressBar自定义圆形进度条的相关资料,需要的朋友可以参考下
    2016-03-03
  • Android中常用的三个Dialog弹窗总结解析

    Android中常用的三个Dialog弹窗总结解析

    自己虽然一直使用过dialog,但是一直都是复制、粘贴;不清楚dialog的具体用途,这次趁着有时间,总结一下具体用法,感兴趣的朋友跟着小编来看看吧
    2021-10-10
  • 一文彻底搞懂Kotlin中的协程

    一文彻底搞懂Kotlin中的协程

    这篇文章主要给大家介绍了Kotlin中协程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Android开发中Intent用法总结

    Android开发中Intent用法总结

    这篇文章主要介绍了Android开发中Intent用法,总结分析了Android中Intent的功能、使用方法与相关注意事项,需要的朋友可以参考下
    2016-10-10
  • Jetpack之CameraX的使用

    Jetpack之CameraX的使用

    CameraX 是Jetpack的一个成员,可以更轻松地开发相机应用,支持搭载Android 5.0及以上设备,具有广泛的设备兼容性,也可确保各设备间的一致性,如宽高比、屏幕方向、旋转角度、预览大小和图像大小等
    2022-11-11
  • Android 静默方式实现批量安装卸载应用程序的深入分析

    Android 静默方式实现批量安装卸载应用程序的深入分析

    本篇文章是对Android 静默方式实现批量安装卸载应用程序进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Android实现学生管理系统

    Android实现学生管理系统

    这篇文章主要为大家详细介绍了Android实现学生管理系统的相关代码,供大家学习借鉴,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Android仿微信QQ聊天顶起输入法不顶起标题栏的问题

    Android仿微信QQ聊天顶起输入法不顶起标题栏的问题

    这篇文章主要介绍了Android之仿微信QQ聊天顶起输入法不顶起标题栏问题,本文实例图文相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Android实现橡皮筋回弹和平移缩放效果

    Android实现橡皮筋回弹和平移缩放效果

    这篇文章主要为大家详细介绍了Android实现橡皮筋回弹和平移缩放效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论