位置: 编程技术 - 正文

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基础知识入门)

  • 企业所得税季末从业人数怎么填
  • 开发成本属于什么类账户
  • 个月所得税税率
  • 金税盘备份文件名
  • 小规模纳税人无进项票怎么办
  • 多缴纳个人所得税怎么办
  • 核定征收可以改查账征收吗
  • 民办非盈利企业注册
  • 房地产企业成本分摊方法整理(附案例分析)
  • 委托加工环节原材料收消费税吗
  • 银行转账结算方式的种类及适用范围
  • 费用发票已报销怎么入账
  • 接受捐赠的要交税吗
  • 每月交的社保什么时候到账
  • 老板报销没有发票怎么办
  • 餐饮发票税钱
  • 企业所得税免税收入和不征税收入
  • 小规模纳税人出售不动产征收率
  • 如何利用成套消费品进行纳税筹划
  • 会展服务服务费怎么是免税
  • 未达账项做完调节表后怎么处理?
  • 企业账户利息收入怎么算
  • 发票密码区是干啥的
  • 暑假工需要什么条件
  • 企业销售费用支出怎么算
  • 付佣金代扣个人所得税税前列支
  • linux help
  • 代缴的五险一金能贷款吗
  • 电子承兑到期怎样接收
  • 推迟月经小窍门有民间土方法吗?
  • linux 匹配字符
  • cmos是bios参数设置的
  • 收到服务费计入什么科目
  • 树上有只松鼠简笔画
  • 集团内部调拨账务处理
  • kb4586853更新
  • 联营企业和合营企业长期股权投资的方式
  • 房产置换流程及费用
  • nullable object must have a value
  • 福克兰群岛属于哪国
  • 事业单位资产管理中存在的问题及整改措施
  • php限制访问频率
  • 小规模纳税人的企业所得税税率
  • 投资性房地产在资产负债表哪个科目
  • reset=target
  • 员工通行费合法报销
  • 电子发票报税怎么操作
  • wordpress部署到github
  • 小规模附加税减免政策2023
  • 什么是指企业的市场营销活动发生影响的各种因素的总和
  • 怎么修改申报数据
  • 定期定额征收税款
  • 固定资产税会折扣吗
  • 发放职工工资是什么支出
  • 银行承兑汇票的特点
  • 印花税申报成功未扣款还能更正吗
  • 工程项目劳务分包招投标要多久
  • 股东以无形资产入股是否需要缴纳个税
  • 营改增后众筹融资业务的会计处理分析?
  • 个税多缴了纳税人怎么办
  • 在网上如何申领发票
  • 分公司可以设立公司吗
  • 收到红字增值税发票哪里查
  • 统计会计主要做什么
  • mysql5.7.27安装
  • 英特尔双核cpu
  • mac合盖不休眠怎么办
  • 从哪里看windows是多少位的
  • Win10预览版桌面图标和任务栏不翼而飞怎么办?
  • webrtc opus
  • shell脚本echo输出变量
  • 场景转换的技巧
  • spiral框架
  • jquery移动div到另一个div中
  • centos6.9查看网卡状态
  • android图片裁剪
  • 胰腺在人体的哪个部位图解
  • setBackgroundDrawable和setBackgroundColor的用法
  • 个体工商户税务申报怎么操作流程
  • 惠州市房产交易税费征收标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设