> 事件总线与广播

事件总线通过注解或者反射的方式自动维护和调用。 otto和AndroidEventBus采用的是注解,EventBus则是规定方法名基础上采用反射。

从调度策略角度,EventBus定义了四种ThreadMode,通过订阅方法的名称来实现。otto的event bus模式事件调度的重要规则是事件调度仅在发送线程域中进行,通过线程控制策略ThreadEnforcer类实现不同的线程控制。同样的,AndroidEventBus同样定义了三种ThreadMode,与 greenrobot的EventBus定义的区别也仅是,前者采用注解,后者采用方法名标记。

--3大的框架的基本使用都非常简单:

EventBus的基本使用官方参考:https://github.com/greenrobot/EventBus

Otto的基本使用官方参考:http://square.github.io/otto/

AndroidEventBus- https://github.com/hehonghui/AndroidEventBus

RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)

RxJava 有四个基本概念:Observable (可观察者,即被观察者)、 Observer (观察者)、 subscribe (订阅)、事件。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。

与传统观察者模式不同, RxJava 的事件回调方法除了普通事件 onNext() (相当于 onClick() / onEvent())之外,还定义了两个特殊的事件:onCompleted() 和 onError()。

>  一起来造一个RxJava,揭秘RxJava的实现原理- http://blog.csdn.net/tellh/article/details/71534704

深入理解编译注解(一)从实战理解什么是编译注解- http://blog.csdn.net/u011315960/article/details/64439575

Java 如注解原理、反射原理、Java 并发

编译注解的目的和优缺点:

编译注解主要是在编译过程中,生成必要的文件,这样在运行时调用,就不需要再通过大量的反射(低效)来进行操作。

这种形式大大提高了注解在运行时的效率,但同时也增加了编译的时间。

Demo- https://github.com/nanchen2251/RxJava2Exampleshttps://github.com/akarnokd/RxJava2Interop , https://github.com/luxiaoming/RxBusDemoRxbus-https://github.com/lightofrain/RxBusTest , https://github.com/luxiaoming/RxBus

java eventbus 原理_事件总线,事件驱动(RxJava,EventBus)与广播(BroadcastReceiver)(2)相关推荐

  1. java eventbus 原理_本文为 Android 开源项目实现原理解析 EventBus 部分,从源码分析 EventBus 的实现原理...

    之前太忙导致 Android 开源项目实现原理解析 一度搁浅,目前一期进行中,我也完成了 EventBus 分析的初稿,大家可以稍微看看后面会继续润色下. PS:本文直接复制 Markdown,格式有 ...

  2. java 事件驱动原理_浅谈事件驱动机制

    事件驱动机制是指在持续事务管理过程中,进行决策的一种策略,即跟随当前时间点上出现的事件,调动可用资源,执行相关任务,使不断出现的问题得以解决,防止事务堆积.在计算机编程.公共关系.经济活动等领域均有应 ...

  3. [Vue源码分析]自定义事件原理及事件总线的实现

    最近小组有个关于vue源码分析的分享会,提前准备一下- 前言: 我们都知道Vue中父组件可以通过 props 向下传数据给子组件:子组件可以通过向$emit触发一个事件,在父组件中执行回调函数,从而实 ...

  4. 【EventBus】EventBus 事件总线框架简介 ( EventBus 使用流程 )

    文章目录 一.EventBus 事件总线框架简介 二.EventBus 使用流程 一.EventBus 事件总线框架简介 Android 中的事件传递机制 : 使用 Intent 在组件间传递信息 ; ...

  5. java stringbuffer原理_深入理解String, StringBuffer, StringBuilder的区别(基于JDK1.8)

    String.StringBuffer.StringBuilder都是JAVA中常用的字符串操作类,对于他们的区别大家也都能耳熟能详,但底层到底是怎样实现的呢?今天就再深入分析下这三种字符串操作的区别 ...

  6. java foreach 原理_一不小心就让Java开发者踩坑的failfast是个什么鬼?

    1 什么是fail-fast 首先我们看下维基百科中关于fail-fast的解释: 在系统设计中,快速失效系统一种可以立即报告任何可能表明故障的情况的系统.快速失效系统通常设计用于停止正常操作,而不是 ...

  7. java clone原理_详解Java中的clone方法 -- 原型模式

    Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  8. java stringbuffer原理_深入理解Java:String

    在讲解String之前,我们先了解一下Java的内存结构. 一.Java内存模型 按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配. JVM主要管理两 ...

  9. Java jta 原理_分布式事务JTA实现Atomikos与Spring集成实践

    Atomikos官网无法访问,不过Maven中央库中具atomikos包.Atomikos集成Spring,Hibernate,Mybatis网上文章比较多,本文是通过JavaSE的方式借用Sprin ...

最新文章

  1. jupyter notebook修改默认工作目录
  2. PaaS模式创新:实现应用可移植性
  3. linux 创建临时文件目录 mktemp 命令 简介
  4. Springboot中使用jpa
  5. Android之drawable state各个属性详解
  6. php的控制器,php-模块与控制器
  7. linux同一目录文件无法执行,linux – 无法在特定目录中执行文件
  8. 那么多GAN哪个好?谷歌大脑泼来冷水:都和原版差不多 | 论文
  9. 手把手教你如何生成自己的二维码
  10. CSDN的MD编辑器【写作技巧】
  11. 编译安装httpd服务
  12. 微信开发工具button跳转页面_微信小程序按钮点击跳转页面详解
  13. numpy 数组的旋转、上下翻转、镜像
  14. 计算机作业我家乡的变化英语作文,家乡的变化 Changes in My Hometown
  15. 以Mesos和Docker为核心的云操作系统
  16. c语言程序与化学有关的程序,化工热力学C语言程序.doc
  17. 互联网公司常用术语简写
  18. 疑似网易泄露用户密码事件浅析
  19. 12大主流平板电脑CPU主控方案平台及其生产厂商
  20. 关于139邮箱的技术问题

热门文章

  1. 如何成为一个成功的 Java 开发人员?
  2. 虾米音乐的监控体系升级之路
  3. 不敌 Java、C/C++、Python,28 岁 VB 究竟输在了哪?
  4. 谷歌宕机,只有运维背锅吗?
  5. 雷军:小米生死靠技术!
  6. 再见,中国移动 3G!
  7. ofo 回应假装老外秒退押金;董明珠雷军十亿赌约到期;高通苹果摩擦再升级 | 极客头条...
  8. php soap proxy host,php-PHP soap Could not connect to host
  9. python传递参数 调用c++ 传递vector_python调用c++传递数组的实例
  10. java语言的主要特点是什么,真的太香了!