EventBus是一个事件发布和订阅的框架。EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast 在Fragment,Activity,Service,线程之间传递消息优点是开销小,代码更优雅。以及将发送者和接收者解耦。 基本使用方法如下:

  1. 自定义一个类,可以是空类,比如:public class AnyEventType { public AnyEventType(){} }
  2. 在要接收消息的页面注册:EventBus.getDefault().register(this);
  3. 发送消息,发送过去的是我们新建的类的实例:eventBus.post(new AnyEventType event); 
  4. 接受消息的页面实现(共有四个函数,各功能不同):
    • onEvent()                         发布事件和接收事件线程在同一个线程,不能执行耗时操作
    • onEventMainThread()              在UI线程中执行,也不能执行耗时操作
    • onEventBackgroundThread()  若从主线程发出,在子线程中执行;若从子线程发出,就在该线程执行
    • onEventAsync()                       无论事件在哪个线程发布,都会创建新的子线程在执行

  5. 解除注册:EventBus.getDefault().unregister(this);

8.1 消息通信 EventBus的更多相关文章

  1. eShopOnContainers 看微服务⑤:消息通信

    1.消息通信 传统的单体应用,组件间的调用都是使用代码级的方法函数.比如用户登录自动签到,增加积分.我们可以在登录函数调用积分模块的某个函数,为了解耦我们使用以来注入并放弃new Class()这种方 ...

  2. ZeroMQ:云时代极速消息通信库

    ZeroMQ:云时代极速消息通信库(大规模|可扩展|低成本|高效率解决之道,大规模分布式|多线程应用程序|消息传递架构构建利器) [美]Pieter Hintjens(皮特.亨特金斯)著   卢涛 李 ...

  3. activity 和 生命周期: 消息通信

    实际上关于activity大概流程已经了解了,在深入的话方向应该是ams的处理操作和界面创建和view绘制.这些话题之后再谈,activity是一个gui程序,其中离不开的就是消息通讯,也就是在消息循 ...

  4. 消息通信库ZeroMQ 4.0.4安装指南

    一.ZeroMQ介绍 ZeroMQ是一个开源的消息队列系统,按照官方的定义,它是一个消息通信库,帮助开发者设计分布式和并行的应用程序. 首先,我们需要明白,ZeroMQ不是传统的消息队列系统(比如Ac ...

  5. Android线程消息通信(一)

    Android在Java标准线程模型的基础上,提供了消息驱动机制,用于多线程之间的通信.基于消息驱动机制的线程通信模型陈伟线程消息通信.在标准线程模型中,线程执行完毕后便退出,而Android扩展了线 ...

  6. [老老实实学WCF] 第十篇 消息通信模式(下) 双工

    老老实实学WCF 第十篇 消息通信模式(下) 双工 在前一篇的学习中,我们了解了单向和请求/应答这两种消息通信模式.我们知道可以通过配置操作协定的IsOneWay属性来改变模式.在这一篇中我们来研究双 ...

  7. [老老实实学WCF] 第九篇 消息通信模式(上) 请求应答与单向

    老老实实学WCF 第九篇 消息通信模式(上) 请求应答与单向 通过前两篇的学习,我们了解了服务模型的一些特性如会话和实例化,今天我们来进一步学习服务模型的另一个重要特性:消息通信模式. WCF的服务端 ...

  8. 消息通信机制NSNotificationCenter -备

    消息通信机制NSNotificationCenter的学习.最近写程序需要用到这类,研究了下,现把成果和 NSNotificationCenter是专门供程序中不同类间的消息通信而设置的,使用起来极为 ...

  9. iOS: 消息通信中的Notification&KVO

    iOS: 消息通信中的Notification&KVO 在 iOS: MVC 中,我贴了张经典图: 其中的Model向Controller通信的Noification&KVO为何物呢? ...

随机推荐

  1. exit

    -------siwuxie095 三个退出命令: exit exit /b goto :eof 这三个命令都可以退出批处理,但之间有细微差别: (1)运行 GOTO :EOF 后,CMD返回并将等待 ...

  2. Finder Item脚本如何包装成 Mac App

    第一步,包装 记得之前把一个 java 程序的 jar 包 用 automator包装成了 app, 但自己找不到做法了.回头我想了想 这么实验可行. 这样做成 app 后保存在 /Applicati ...

  3. android xml特殊字符

    @ 对应 @ : 对应 :   对应 空格 对应 空格 ! 对应 ! " 对应 " # 对应 # $ 对应 $ % 对应 % & 对应 & ' 对应 ´ ( 对应 ...

  4. Java的二维数组的应用及杨辉三角的编写

    (1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出. (2) 编程输出杨辉三角的前10行. 找出一个 ...

  5. ubuntu新建用户无法登陆

    使用sudo adduser 创建用户,不存在无法登陆问题,如果使用useradd创建用户xx,需要在新建home目录下建立用户目录. 同时,需要修改用户目录的属主,命令:chown xx:xx   ...

  6. MVC 过滤器 构建会员是否登录

    使用环境:在后台管理或者前台有会员中心的情况下使用 使用方式:这是一个用户中心的控制器 我给用户中心主页增加一个特性 [AccountFilter]这是一个过滤器的名字 public class Ac ...

  7. Markdown: 用写代码的思维写文档

    作者:吴香伟 发表于 2014/08/07 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 本文不讲解Markdown的语法规则,只关注它带来的好处以及我使用的方 ...

  8. sql学习

    1.改变表的某一字段的长度: alter table tt   modify a char(2000); 2.不想打开表就查看某一字段的长度可用下面的方法: select length(a),leng ...

  9. dos2unix unix2dos

    实现windows和linux之间的文件自动转换,消除^M.

  10. 查看应用程序使用的所有dll

    VS2008命令提示符下: >dumpbin.exe   /dependents  <文件路径+文件名> □