位置: 编程技术 - 正文

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

  • 固定资产转让怎么做账
  • 旅游交什么税
  • 保险公司代收车船税会计分录
  • 小规模纳税人免税账务处理
  • 高新企业要求研发投入
  • 两家公司实际控制人为一个人
  • 出口退税收到退税款会计分录
  • 合并财务报表内部交易对净利润影响
  • 新个税法案专项扣除如何实施
  • 出口货物的销售额怎么算
  • 递延所得税如何申报
  • 偿债基金公司债
  • 不动产进项税额抵扣最新通知2023
  • 投资办厂协议
  • 浅析税收滞纳金问题的政策法规
  • 月收入不超10万减免 具体分销售额吗
  • 关税征收目的
  • 完税凭证丢失如何补办
  • 支票大写金额书写转换
  • 成品油生产企业税务风险
  • 微软输入法打不出汉字只有拼音
  • 怎么给员工购买保险
  • thinkphp获取数据库数据
  • linux管理员账户名
  • 转出未交增值税借方余额表示什么
  • 违约金没有写按什么算
  • 账务处理程序有什么
  • 代理进口的增值税如何入账
  • 财务费用明细科目有哪些
  • 电脑上fci是什么文件
  • 净资产和净利润一样吗
  • php100 jquery教程
  • 出口退税款的会计科目
  • php实现数组排序,所有奇数在前偶数在后怎么排序
  • php使用redis缓存技术
  • 珠宝行业会计核算内容
  • SwinIR实战:详细记录SwinIR的训练过程
  • 解决谷歌浏览器自动添加书签问题
  • 进口货物财务处理
  • 员工迟到扣款怎么处理
  • 物业费税目
  • 车险增值税发票模板图片
  • 滴滴普通发票如何开
  • 停工损失会计分录怎么写
  • 债券发行时发生的承销费、法律费
  • mysql操作步骤
  • mysql数据库编码
  • pos机刷卡未成功却扣了钱啥时候就退回来了
  • 跨年发票两大原则
  • 资产总额的季度平均值
  • 流动比率表示方法
  • 借方记录什么的增加
  • 辅助生产费用如何判断受益多少事指什么
  • 收款单属于什么科目
  • 互联网金融理财产品的优势
  • 出口发票开具普通发票开具汇率是根据什么订?
  • 跨年红冲收入记在本年度
  • 出售无形资产损失
  • 在建工程预付款怎么做账
  • 跨月普票作废怎么处理操作步骤
  • 破产重组还需要还钱吗
  • 房地产企业会计核算和税务处理大全
  • sqlserver 中文字符集
  • sql操作方法
  • Windows 10 PC/Mobile Build 14965预览版推送:改进PC端
  • 硬盘安装后不显示
  • win8固态硬盘
  • win8.1操作系统关闭驱动数字签名
  • js的forin
  • perl 比较符
  • nodejs基础
  • css实现放大缩小的动画效果
  • python基础教程 入门教程
  • python语句分为哪两种
  • python二叉树的遍历算法
  • 小规模纳税人销售额怎么算
  • 关于增值税纳税人的规定,下列说法正确的是
  • 公司被分立,应将分立后的单位
  • 注销税务登记存货如何处理
  • 税控防伪清单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设