位置: 编程技术 - 正文

Android:Otto源码分析(android源码分析)

编辑:rootadmin
Otto源码分析

推荐整理分享Android:Otto源码分析(android源码分析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android looper源码,android systemui源码分析,android demo源码,android glide源码分析,android glide源码分析,android looper源码,android dialog源码,android systemui源码分析,内容如对您有帮助,希望把文章链接给更多的朋友!

Otto是一个轻量级的EventBus,它的使用非常简单,我们使用一个Bus的单例,所有需要产生事件(@Produce bus.post(new YourEvent(…)))或者处理事件(@Subscribe)的对象,在create时register,销毁destroy时unregister即可。

使用@Subscribe 订阅事件,也就是事件的处理者,它有且仅有一个参数YourEvent,每一个Subscribe对应处理一个YourEvent。Event用于连接(匹配)post和订阅。@Subscribe使用举例:@Produce 产生事件,改方法在对象被register后即被调用(–使用情况比较特殊的),该方法必须有一个非空的返回值,参数必须为空。bus.post(new YourEvent(…)) 发送一个事件,等待@Subcribe处理使用举例MainActivityBusManager 是一个单例MyEvent 自己定义的事件类运行结果

每次调用registe()方法是,会立即调用@Produce方法,将return的事件发送出去,由参数为MyEvent的@Subscribe方法接收并处理。bus.post()也是如此。

原理

主要是Bus.java里面的代码: 关键的方法有

public void register(Object object) 该方法的作用是查找object里面所有带有Produce和Subscribe注解的方法,并保存在Map中,并且会立即执行Produce注解的方法。

Android:Otto源码分析(android源码分析)

public void post(Object event) 发送事件event,根据之前注册过的object里面的方法,查找参数为event的Subscribe方法,并invoke该方法。这样就达到了post之后,调用对应Subscribe方法的目的。

public void unregister(Object object) 注销object,删除掉map中保存的object的方法,释放object,防止内存泄露。

Bus源代码

具体代码如下:

有趣的小工具AnnotatedHandlerFinder

当你自己写框架的时候,很多时候需要用到Annotation查找,

更多交流

Android开发联盟QQ群:

android学习 - 问题1 - 项目名称:1-hello运行报错 一、问题Eclipse-ADT编写helloWorld程序,项目名称1-hello,运行报错InstallationfailedduetoinvalidAPKfile!二、原因项目名称不能以数字开头,只能以字母或下划线开

Android学习 - Android图片变换处理 Matrix图片变换主要讲解一下如何处理对一个Bitmap对象进行处理,包括:缩放、旋转、位移、倾斜等。在最后将以一个简单的Demo来演示图片特效的变换。M

Android学习 - 圆形ImageView 先看下效果图:publicclassRoundedImageViewextendsImageView{privateintborderThickness;privateintborderColor;privateBitmapimage;privateContextcontext;privateintwidth=0;privateintheight=0;publicRou

标签: android源码分析

本文链接地址:https://www.jiuchutong.com/biancheng/381105.html 转载请保留说明!

上一篇:Android学习 - Android应用如何支持屏幕多尺寸多分辨率问题(android怎么学)

下一篇:android学习 - 问题1 - 项目名称:1-hello运行报错(android基础知识入门)

  • 车船税退税办理时限
  • 小规模纳税人收入是含税还是不含税
  • 账面价值大于计税基础是什么差异
  • 出口货物退免税政策
  • 个人所得税的税目分多少种
  • 以前多计提的税款怎么办
  • 扶贫入股分红能领多久
  • 金税四期正式启动
  • 预提费用在资产负债表里写在哪
  • 办公费专票怎么做账
  • 专票遗失后可以作废吗
  • 成本 费用区别
  • 小企业会计准则和企业会计准则的区别
  • 原材料供销合同和电子汇划收款回单金额不一样
  • 退休后补发退休前的工资需要扣社保吗
  • 计提资产减值准备是利好还是利空?
  • 如何减少资产负债表上的资本公积
  • 小微企业季度超过45万如何填申报表
  • 现金交易的发票可以认证
  • 营改增后营业外收入交增值税吗?
  • 工会经费的缴费主体
  • 企业为员工提供住宿会计科目
  • 发票月初抄税流程
  • 这个月只开了销项负数怎么办
  • 工资税金算法
  • 怎么让资产负债率下降
  • 研发废料收入
  • vue组件相互引入
  • php字符串赋值
  • 企业合并收购,对员工的机会和挑战
  • 企业员工个人所得税申报流程
  • 观察者模式 mvc
  • php和mysql web开发怎么样
  • 保险公司的展业方式
  • 出口货物如何开票入账
  • 企业收到政府奖励会计分录
  • 办公室设计费计入什么
  • 拖拉机拖拉机耕地
  • chrome浏览器清除数据
  • 保安行业税率是多少
  • php xml转字符串
  • 票折怎么操作
  • Laravel 5.3 学习笔记之 安装
  • 织梦常用调用标签
  • 百度 编辑器
  • 织梦如何使用
  • 零税率与免税有关系吗
  • 什么是指社会保障完全靠当前的收入
  • 税务信用级别A有什么好处
  • 长期股权投资权益法账务处理
  • 固定资产盘盈影响所有者权益吗
  • 所得税怎么收取
  • 小规模纳税人专票开1%还是3%
  • 暂估成本发票最晚什么时候补齐
  • 高速公路过路费可以抵扣进项税吗
  • 怎么对外投资
  • 预计负债的账务处理
  • 借调人员费用列支
  • 汽车价外费用
  • 微信昵称带符号图案
  • windows modules installer worker
  • webcolct.exe - webcolct 是什么进程
  • welcome.exe - welcome进程是什么意思
  • 苹果mac安装win10系统
  • centos 7 远程桌面
  • windows7 cpu使用率高
  • excel最小化后再次选择不弹出来
  • 安卓影音播放软件
  • unity项目怎么运行
  • nodejs 异步任务队列
  • 批处理文件用的什么语言
  • python executemany的使用及注意事项
  • js正则匹配特殊符号
  • js能实现的简单效果
  • 花都狮岭到广州白云站怎么坐车
  • 国家税务局文件查询
  • 武汉经济技术开发区法院立案庭电话
  • 特服号码
  • 深圳蛇口社保局在哪里
  • 征地税税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设