java eventbus 原理_事件总线,事件驱动(RxJava,EventBus)与广播(BroadcastReceiver)(2)
> 事件总线与广播
事件总线通过注解或者反射的方式自动维护和调用。 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)相关推荐
- java eventbus 原理_本文为 Android 开源项目实现原理解析 EventBus 部分,从源码分析 EventBus 的实现原理...
之前太忙导致 Android 开源项目实现原理解析 一度搁浅,目前一期进行中,我也完成了 EventBus 分析的初稿,大家可以稍微看看后面会继续润色下. PS:本文直接复制 Markdown,格式有 ...
- java 事件驱动原理_浅谈事件驱动机制
事件驱动机制是指在持续事务管理过程中,进行决策的一种策略,即跟随当前时间点上出现的事件,调动可用资源,执行相关任务,使不断出现的问题得以解决,防止事务堆积.在计算机编程.公共关系.经济活动等领域均有应 ...
- [Vue源码分析]自定义事件原理及事件总线的实现
最近小组有个关于vue源码分析的分享会,提前准备一下- 前言: 我们都知道Vue中父组件可以通过 props 向下传数据给子组件:子组件可以通过向$emit触发一个事件,在父组件中执行回调函数,从而实 ...
- 【EventBus】EventBus 事件总线框架简介 ( EventBus 使用流程 )
文章目录 一.EventBus 事件总线框架简介 二.EventBus 使用流程 一.EventBus 事件总线框架简介 Android 中的事件传递机制 : 使用 Intent 在组件间传递信息 ; ...
- java stringbuffer原理_深入理解String, StringBuffer, StringBuilder的区别(基于JDK1.8)
String.StringBuffer.StringBuilder都是JAVA中常用的字符串操作类,对于他们的区别大家也都能耳熟能详,但底层到底是怎样实现的呢?今天就再深入分析下这三种字符串操作的区别 ...
- java foreach 原理_一不小心就让Java开发者踩坑的failfast是个什么鬼?
1 什么是fail-fast 首先我们看下维基百科中关于fail-fast的解释: 在系统设计中,快速失效系统一种可以立即报告任何可能表明故障的情况的系统.快速失效系统通常设计用于停止正常操作,而不是 ...
- java clone原理_详解Java中的clone方法 -- 原型模式
Java中对象的创建 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...
- java stringbuffer原理_深入理解Java:String
在讲解String之前,我们先了解一下Java的内存结构. 一.Java内存模型 按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配. JVM主要管理两 ...
- Java jta 原理_分布式事务JTA实现Atomikos与Spring集成实践
Atomikos官网无法访问,不过Maven中央库中具atomikos包.Atomikos集成Spring,Hibernate,Mybatis网上文章比较多,本文是通过JavaSE的方式借用Sprin ...
最新文章
- jupyter notebook修改默认工作目录
- PaaS模式创新:实现应用可移植性
- linux 创建临时文件目录 mktemp 命令 简介
- Springboot中使用jpa
- Android之drawable state各个属性详解
- php的控制器,php-模块与控制器
- linux同一目录文件无法执行,linux – 无法在特定目录中执行文件
- 那么多GAN哪个好?谷歌大脑泼来冷水:都和原版差不多 | 论文
- 手把手教你如何生成自己的二维码
- CSDN的MD编辑器【写作技巧】
- 编译安装httpd服务
- 微信开发工具button跳转页面_微信小程序按钮点击跳转页面详解
- numpy 数组的旋转、上下翻转、镜像
- 计算机作业我家乡的变化英语作文,家乡的变化 Changes in My Hometown
- 以Mesos和Docker为核心的云操作系统
- c语言程序与化学有关的程序,化工热力学C语言程序.doc
- 互联网公司常用术语简写
- 疑似网易泄露用户密码事件浅析
- 12大主流平板电脑CPU主控方案平台及其生产厂商
- 关于139邮箱的技术问题
热门文章
- 如何成为一个成功的 Java 开发人员?
- 虾米音乐的监控体系升级之路
- 不敌 Java、C/C++、Python,28 岁 VB 究竟输在了哪?
- 谷歌宕机,只有运维背锅吗?
- 雷军:小米生死靠技术!
- 再见,中国移动 3G!
- ofo 回应假装老外秒退押金;董明珠雷军十亿赌约到期;高通苹果摩擦再升级 | 极客头条...
- php soap proxy host,php-PHP soap Could not connect to host
- python传递参数 调用c++ 传递vector_python调用c++传递数组的实例
- java语言的主要特点是什么,真的太香了!