EventBus的简单使用与原理】的更多相关文章

一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅.以及将发送者和接收者解耦. 部分源码: //通过反射,获取到订阅者的所有方法 Method[] methods = clazz.getMethods(); for (Method method : methods) { String methodName = me…
.net平台的组成只要有两部分   FCL:框架类库    CLR:公共语言运行时 .net程序简单的编译原理 1.0:使用C#编译器(csc.exe) 将C#源代码编译成程序集+{编译之前:会检查C#源代码是否符合C#的语法规范,如果符合  才会编译成程序集,如果不符合,将会报错,就不会生成程序集了} 程序集: 哈哈  小伙伴  关于程序集的后缀有两种(exe, dll) 需要有.net平台生成的才是 生成程序集的时候最重要的部分是MSIL(微软中间语言),在编译的时候会将C#源代码编译成MS…
本节将讲述Facade,Proxy.Mediator.Command的统一管家.自定义Facade必须继承Facade,在本示例中自定义Facade名称为ApplicationFacade,这个名称也是pureMVC组织建议的名称.先看代码: package com.superwulei { import com.superwulei.controller.StartupCommand; import org.puremvc.as3.patterns.facade.Facade; public …
本节将讲述pureMVC示例中的Controller层. Controller层有以下文件组成: AddUserCommand.as DeleteUserCommand.as ModelPrepCommand.as ViewPrepCommand.as StartupCommand.as AddUserCommand .顾名思义,它是添加用户命令.让我们首先看看代码. package com.superwulei.controller { import com.superwulei.model.…
本篇说的是View层,即视图层,在本示例中包括两个部分:MXML文件,即可视控件:Mediator. 可视控件 可视控件由UserForm.mxml(图1)和UserList.mxml(图2)两个文件组成.UserForm.mxml用于添加用户,UserList.mxml显示用户和删除已添加用户. [图1] [图2] 先看UserForm.mxml,既然要添加用户,就一定会要一个方法.你还记得么,在上一篇<pureMVC简单示例及其原理讲解——Model层 >中我们提到的UserProxy中有…
今天,简单讲讲Android里关于EventBus的使用. 这几天,由于面试的缘故,我听到了很多Android的流行框架,但是之前自己在公司做APP时并没有使用,所以没有了解.于是在网上查找了资料,学习了这些Android的流行框架的使用,准备做一个Android流行框架的专栏.分别介绍Android框架:EventBus,RXJava,Retrofit,OKHttp,Dagger2,ButterKnife,Glide,volle,green这些框架.目前只打算将这些框架的基本使用,以后再项目里…
1.简单了解搜索引擎收录的原理  包括baidu. google .yahoo 在内的各大搜索引擎在内基本上搜录网站的原理大致相同(除了国内某些网站 网1新 l 等采取人工登记的办法),搜索引擎都是采用自己的算法在网络上遍历搜索,一般靠有效的连接和网页的跳转访问地址,同时也登记网站的<title>和<meta>,并对一部分关键字进行屏蔽.遍历的结果也要进行筛选,重复的网址和不可靠的<title>甚至网页内容会被删除.并定时更新搜索引擎的数据. 百度: http://ww…
WordPress 的插件机制实际上只的就是这个 Hook 了,它中文被翻译成钩子,允许你参与 WordPress 核心的运行,是一个非常棒的东西,下面我们来详细了解一下它. PS:本文只是简单的总结一下,更多用法还是要参考文中给出的函数. 钩子分类 钩子分为两种,一种叫做动作(action),还有一种叫做过滤器(filter).这两种钩子实现原理基本一样,后边会讲到,使用上的区别在于过滤器有返回值,而动作没有. 动作的理念是让你在一种情况或者一个特别的位置执行一些函数,比如发送一封邮件等:过滤…
公共事件总线eventBus的实质就是创建一个vue实例,通过一个空的vue实例作为桥梁实现vue组件间的通信.它是实现非父子组件通信的一种解决方案. 用法如下: 第一步:项目中创建一个js文件(我通常给它取个名字为bus.js),引入vue,创建一个vue实例,导出这个实例,代码如下(一共就两行): import Vue from 'Vue' export default new Vue   第二步:在两个需要通信的两个组件中分别引入这个bus.js      import Bus from…
简单了解: Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的.因为Java没有结构,数组和串都是对象,所以不需要指针,其次Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼. Java设计成支持在网络上应用,它是分布式语言,编译程序生成字节码(byte-code),而不是通常的机器码.是多线索语言,它提供支持多线索的执行(也称为轻便过程),能处理不同任务,使具有线索的…
上一篇理解Express的使用之后, 再总结一篇Express中间件的简单实现原理. 我们知道Express中间件就是一个个的函数, 那么怎么让这些函数有序的执行呢? 那就需要我们调用 next 函数.其实 next函数调用的就是下一个中间件函数. 以下代码实现了简单的 app.use 注册中间件, 以及 get.post方式的中间件.其他请求方式的中间件实现同理 核心代码: const next = () => { const stack = stacks.shift() if(stack)…
                                                                          1100 - Again Array Queries                                                                                                  ->   Link   <- 又是这种区间查询最值问题,题目意思是要使得这个区间的两个数的差值最小值,…
对于javascript程序员来说,发送ajax请求获取后台数据然后把数据和模板拼接成字符串渲染回DOM实现无刷新更新页面这样的操作可谓是轻车熟路.但众所周知,ajax有一个不好,就是不能跨域传输数据,而跨域传输有时候又是必须用到的,比如我们可能需要调用第三方网站提供的某些API来获取某些信息,提供给我们网站的用户.   例如,要开发一个天气应用,你可能需要调用第三方的天气API,这个时候就必然涉及到跨域请求数据,因为毕竟我们不可能为了开发一个天气应用就自己搭建一个天气API.在少数情况下,如果…
1.概述 观察者模式最常用的地方是GUI系统.订阅-发布系统.观察者模式的一个重要作用就是解耦,将观察者和被观察者解耦,使得他们之间的依赖性更小. 2.定义 定义对象间的一种一对多依赖关系,使得每当一个对象改变状态时,所有依赖他的对象都会得到通知并自动更新. 3.简单的代码实现 观察者 public class MyObserver implements Observer { public String name; public MyObserver(String name){ this.nam…
问题:实现input搜索框实时检索的功能,类似哔哩哔哩首页搜索功能(壮哉我大b站!).公司要求,emmmm没办法,果然懒人是要被赶着走才会进步的说,诶嘿O(∩_∩)O. 解决方法: 1.参考资料:http://www.jb51.net/article/111408.htm 基础思路 http://blog.sina.com.cn/s/blog_69ec42d50102wqok.html 进阶思路 2.效果图: 3.思路: 一:目前监听input输入框有三种方法: 一种是onchange事件,触发…
线程池的作用就不多说了,其实就是解决两类问题:一是当执行大量的异步任务时线程池能够提供较好的性能,在不使用线程池时,每当需要执行异步任务是需要直接new一个线程去执行,而线程的创建和销毁是需要花销的,而线程池中的线程是可复用的,不需要每次执行异步任务时都去创建和销毁线程:二是线程池提供了一种资源限制和管理的手段,比如可以限制线程的个数.动态新增线程等: 一.Executors工具类 我们创建一个线程池最好直接用这个工具类去创建,常用的线程池有几种,一种是用newFixedThreadPool方法…
引言 FastDFS 属于分布式存储范畴,分布式文件系统 FastDFS 非常适合中小型项目,在我接手维护公司图片服务的时候开始接触到它,本篇文章目的是总结一下 FastDFS 的知识点. 用了 2 台 2 核 4G 的阿里云服务器做集群部署,具体部署步骤请参考:https://github.com/happyfish100/fastdfs/wiki 1.FastDFS 分布式文件系统概述 FastDFS 是一个轻量级的开源分布式文件系统,作者为淘宝资深架构余庆. FastDFS 主要解决了分布…
一.React简单介绍 1.React起源于Facebook内部项目,与2013年5月 2.是一个用于构建用户界面的JavaScript库 二.React特点 1.声明式设计-React采用声明范式,可以轻松描述应用 2.高效-React通过对DOM的模拟,最大限度地减少与DOM的交互 3.灵活- React可以与已知的库或框架很好的配合 4.JSX- JSX是JavaScript语法的扩展 5.组件-通过React构建组件,使得代码更加容易得到复用,能够很好的应用在大型项目的开发中 6.单向响…
EventBus下载地址:https://github.com/greenrobot/EventBus MyEvent: package com.zzw.testeventbus; public class MyEvent { public int id; public String content; public MyEvent() { super(); } @Override public String toString() { return "MyEvent [id=" + id…
转自:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html 有时间再好好看下整个文章! 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanjay Ghemawat.这两位是Google公司重量级的工程师,为数甚少的Google Fellow之二. Jeff Dean其人:http://research.google.com/peop…
本节将讲述Model层. Model层有VO和Mediator组成,非常简单,仅仅包含两个类:UserVO和UserProxy. UserVO中的构造器用于初始化用户的添加(通过email和密码),另一个isValid属性验证用户电子邮件是否合法以及密码长度. /** UserVO */ package com.superwulei.model.vo { public class UserVO { public var email:String = '';            //电子邮件 p…
pureMVC是一个MVC框架,皆在最大限度的减少MVC间的耦合性.本人刚刚接触pureMVC时感到一头雾水,不知从何入手,也不知道从何学习.好在本人有耐性且能看懂英文技术文档,面向对象的编程能力也比较扎实.在这种背景下,终于悟出了pureMVC的原理,能够使用pureMVC进行开发.如果把pureMVC的领悟境界分为若干,我是处于最低境界(潜力很大啊).好,闲话不说,言归正传. 本示例是在理解了官方示例EmployeeAdmin示例的基础之上的简化版,用意是为了更好的理解pureMVC. 界面…
nfs最大的缺点是单点,只能一对一nfs统称存储服务器,放视频图片之类的东西,所以服务器的容量很大数字都是放在数据库里边的, nfs的挂载原理 客户端怎么知道服务端的开启端口? 找rpcbind,再启动的瞬间,nfs会想rpc注册,nfs有哪些端口号可以用,rpc固定监控一个端口号,当客户端来连接的的时候,rpc会受到请求,然后分发端口号,客户端通过端口号在和nfs建立连接 具体步骤 1需要先装rpcbind的东西 2装nfs-utils 要先起rpc服务 在起nfs服务,nfs要像rpc注册…
1. 静态文件模式 browser-sync start --server --files "css/*.css" "*.html" 2. 代理模式 browser-sync start --proxy "localhost" --files "*.php" "css/*.css" 在浏览器中输入http://192.168.0.103:3000/test.php, 浏览器所在的机器的ip为 192.168…
Seata 是什么? Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案. AT 模式 前提 基于支持本地 ACID 事务的关系型数据库. Java 应用,通过 JDBC 访问数据库. 整体机制 两阶段提交协议的演变: 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源. 二阶段: 提交异步化,非常快速地完成. 回滚通过一阶段的回滚…
OAuth2.0这个名词你是否在项目中时常听到呢?是否觉得好像懂,又好像不太懂呢? 最近一直想写篇关于OAuth2.0的东西,记录下我的学习与感悟,然各种理由的拖延,直到今日才静下心来写下这篇博客.当然,这里仅代表个人理解,如有纰漏之处,望园内大佬们不吝赐教- 好了,话不多说,干货顶上. 几个基本概念 认证(Authentication)和授权(Authorization) 在接触OAuth2.0时是不是经常听到认证和授权这两个词呢?刚接触时,一直以为这两个词是一个意思,只是大家说法的不同而已.…
参考: 1.http://blog.csdn.net/harvic880925/article/details/40660137 2.http://blog.csdn.net/harvic880925/article/details/40787203…
https://blog.csdn.net/qq_36632687/article/details/79551828?utm_source=blogkpcl2 参考文章: 正确理解ThreadLocal 一个故事讲明白 ThreadLocal…
设置签名: ​ 用户名:tom ​ Email地址:goodMorning@atguigu.com ​ git config user.name tom_pro ​ git config user.email goodMorning@atguigu ​ 作用:区分不同开发人员的身份,无其他作用 辨析:这里设置的签名和登录远程库(代码托管中心)的账号.密码没有任何关系 命令:(就近原则:二者都没有不允许) 项目级别/仓库级别:仅在当前本地库范围内有效 系统级别:登录当前操作系统的用户范围有效 --…
@ 目录 学习总结 1. 为什么要使用反射 2. 反射的概念 3. Java反射加载过程 4. 反射优缺点 5. 字节码对象理解 6. 获取字节码对象(.class)的三种方式 7. 反射常用API 8. 反射综合案例 总结 学习总结 1. 为什么要使用反射 Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM.通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是…