由浅入深了解EventBus:(三)】的更多相关文章

原理 EventBus的核心工作机制如下图 在EventBus3.0架构图: EventBus类 在EventBus3.0框架的内部,核心类就是EventBus,订阅者的注册/订阅,解除注册,以及事件的分发全部在这个核心类中实现; 对于EventBus对象的创建,在框架内部是通过单例模式进行创建;我们平时在代码中通过EventBus类中的静态方法getDefault 获取实例对象: public static EventBus getDefault() { if (defaultInstance…
概念 深入学习EventBus框架,就必须理解EventBus的相关原理和一些概念: Subscribe 在EventBus框架中,消息的处理接收方法必须要“@Subscribe”注解来进行标注: public @interface Subscribe { ThreadMode threadMode() default ThreadMode.POSTING; boolean sticky() default false; int priority() default 0; } 从Subscrib…
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:[张鸿洋的博客] 上一篇带大家初步了解了EventBus的使用方式,详见:Android EventBus实战 没听过你就out了,本篇博客将解析EventBus的源码,相信能够让大家深入理解该框架的实现,也能解决很多在使用中的疑问:为什么可以这么做?为什么这么做不好呢? 1.概述 一般使用EventBus的组件类,类似下面这种方式: public cl…
线程模型 在EventBus3.0框架中执行线程的快速切换,通过ThreadMode来指定线程在哪个线程中执行; 在EventBus3.0框架线程模型有个PendingPost 类负责数据的传递; final class PendingPost { private final static List<PendingPost> pendingPostPool = new ArrayList<PendingPost>(); Object event; Subscription subs…
事件分发 EventBus3.0的事件的分发时通过EventBus类中的post(粘性事件为postSticky)方法,post与postSticky的唯一区别就是,在postSticky内部首先会向EventBus类中的stickyEvents集合中添加事件类实例,然后在调用post方法:post方法的参数就是我们自己定义的事件类的实例: post public void post(Object event) { PostingThreadState postingState = curren…
事件注册 在EventBus3.0框架中订阅者对事件进行注册/订阅是通过EventBus类中的register方法来实现的,register的方法参数就是我们的订阅者的实例; public void register(Object subscriber) { Class<?> subscriberClass = subscriber.getClass(); List<SubscriberMethod> subscriberMethods = subscriberMethodFind…
概述 由greenrobot织贡献(该组织还贡献了greenDAO),一个Android事件发布/订阅轻量级框架; EventBus是一个消息总线,以观察者模式实现,用于简化程序的组件.线程通信,可以轻易切换线程.开辟线程.EventBus分离了事件的发送者和接收者的耦合关系;它可以替代我们传统的Intent,Handler,Broadcast在Fragment,Activity,Service,线程之间传递数据,执行方法. 用法 EventBus的git地址:https://github.co…
通过前两节的学习,目前我们已经完成了数据库的安装,用户的创建及权限操作等相关操作,但是我们似乎我们只是隐隐约约接触到了数据库的一些基本操作,对数据库表还是比较陌生.那么现在我们呢开始了解一些数据库的一些基本操作.这节我们分为一下几个内容: 关于mysql的基本数据类型可以参照http://www.cnblogs.com/xuqiang/archive/2010/10/14/1953464.html,此处不再赘述. 数据库的增删操作 数据库表的增删改查操作 数据库表中记录的增删改查操作 首先要学习…
简介 EventBus是由greenrobot组织贡献的一个Android事件发布/订阅的轻量级框架.EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间的通信. 优势 简化组件通信 解耦事件发送端和接收端 在Activity.Fragment和后台线程之间运行良好 避免复杂且易出错的依赖问题和生命周期问题 运行速度快 jar包小(小于50K) 具有指定分发线程和用户优先级等高级特性 特性 简单但强大:EventBus…
No1: EventBus三要素: 1)Event:事件 2)Subscriber:事件订阅者 3)Publisher:事件发布者 No2: EventBus的4种ThreadMode(线程模型): 1)POSTING(默认):该事件是在哪个线程发布出来的,事件处理函数就会在哪个线程中运行 2)MAIN:事件的处理会在UI线程中执行 3)BACKGROUND:在新线程或者发布的子线程中执行,禁止进行UI更新操作 4)ASYNC:在新建的子线程中执行,禁止进行UI更新操作 No3: EventBu…