位置: 编程技术 - 正文

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

编辑:rootadmin
Otto源码分析

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

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

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 app 源码)

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:ValueAnimator的使用举例 由来很多人对ValueAnimator不熟悉,其实ValueAnimator的功能是非常强大的。它按照设定的时间和规则,在Update方法中将value友from变化到to。说起来很简单~动画

android:模拟水波效果的自定义View Github地址:

android:3D垂直翻转动画-FlipAnimation 需求对ImageView进行类似于翻纸牌的动画解决各种Animator的组合第一步动画:动画代码文件1,card_flip_left_out.xml?xmlversion="1.0"encoding="utf-8"?setxmlns:android="http:/

标签: android app 源码

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

上一篇:android:Background线程池和UiThread线程池

下一篇:Android:ValueAnimator的使用举例

  • 新公司未办税务怎么处理
  • 个体户开电子发票需要交税吗
  • 企业回购股票会使所有者权益
  • 销售成本结转属于收入吗
  • 网上社保增减员操作流程
  • 非房产企业出售不动产需要缴纳增值税吗
  • 货没出,发票先开
  • 所得税申报表中的资产总额如何填
  • 购进蔬菜的进项税额
  • 跨月应该如何开具红字发票?
  • 以旧换新的金子划算吗
  • 计提坏账准备,坏账准备是增加还是减少
  • 现金出资可以吗
  • 汇算清缴时资产总额如何计算
  • 降低房租
  • 小规模免征增值税政策
  • 融资租赁购入固定资产开票吗
  • 财政补助结转余额在借方还是贷方
  • 机动车发票冲红怎么操作
  • 采购均价怎么计算
  • 季度弥补以前年度亏损报表怎么填
  • 店内上保险退保
  • 个体工商户经营所得税怎么申报
  • 怎么核对银行存款余额和对账单余额
  • 债务重组会计处理中,债务人确认的债务重组利得
  • 做季报和月报增发的区别
  • 汽车租凭发票税率
  • 水利建设专项收入怎么申报不了
  • 出差人什么意思
  • 企业无法取得发票,如何税前扣除
  • win7系统里没有无线网络连接
  • PHP:mb_eregi_replace()的用法_mbstring函数
  • 计提劳务派遣人员社保收到发票后没有付款的会计分录
  • php正则表达式验证url
  • 小规模纳税人的企业所得税怎么算
  • 视同销售成本如何确认?
  • php数组函数题目
  • 企业汇算清缴后发现有多计提的成本
  • Salzburg with Salzach river, Austria (© MacEaton/Alamy)
  • 小程序自定义tabbar创意动画
  • 面试官:一千万是真的吗
  • phptoken验证原理
  • nodejs如何使用
  • 保理属于什么行业分类
  • 生产企业出口转内销增值税申报表怎么填
  • 合并报表少数股东权益是什么
  • 汇款退回多久到账
  • 购买方已抵扣怎么做分录
  • 员工工作服扣款
  • 境外服务费代扣代缴所得税怎么做账
  • 职工福利费相关文件有哪些
  • 哪种情形的货物或者服务可以采用竞争性谈判方式采购
  • 小规模纳税人防伪税控会计分录
  • 汇算清缴前取得发票可以税前扣除吗
  • 当月发票已认证还能作废吗
  • 申请享受免税资金的条件
  • 其他现代服务业是什么
  • 手工账明细账怎么登记
  • mysql 查询范围
  • 宏基笔记本一键恢复系统
  • win8系统怎么重新安装系统
  • ims文件是什么意思
  • win8桌面图标变大了怎么调小
  • window8所有程序在哪
  • win7宽带连接改成无线网络
  • win10画图功能
  • linux安装pip2
  • win8.1怎么样
  • opencv轻松入门
  • Node.js中的construct
  • shell脚本监控进程
  • unity基础教程
  • arp欺骗防范方法
  • jquery img onload
  • bash fi
  • 安卓手机管家在哪里打开
  • [置顶]电影名字《收件人不详》
  • 谈谈我对环境保护的认识
  • amd模拟intel
  • 粮食购销企业税收服务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设