位置: 编程技术 - 正文

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中,如何搜索指定扩展名的文件
  • 收益相关的政府补助分录
  • 电脑维修会不会对电脑有影响
  • win10分辨率调整
  • 生产物料报废
  • 物业管理费发票图片
  • 按税收的计税依据为标准税收分为
  • 专利年费的滞纳金
  • 为什么筹建期间的开办费不属于资产
  • 企业所得税年报截止日期2023
  • php进程数设置
  • thinkphp curl
  • php curl_exec
  • 残保金计入税金还是管理费用
  • vue环境搭建及配置简书
  • 专票如何申领
  • 我已经用尽了洪荒之力漫画表情
  • 企业待报解预算收入的分录
  • 存量资金上缴财政款 预算会计
  • 工资直接计入管理费用了怎么办
  • 本年利润的会计分录有哪些
  • 电子发票怎么清盘操作流程
  • mysql的索引是什么
  • mongodb subtract
  • 金融企业往来支出科目属于什么科目
  • 公司收购股权交什么税
  • sqlplus分页查询
  • 个体户怎么申请电子营业执照
  • 文化事业建设费减免政策
  • 在建工程转出到什么科目
  • 附加税多交了怎么抵税
  • 固定资产清理属于什么科目借方增加还是减少
  • 净资产少于1元
  • 过了认证期怎么办
  • 残保金管理使用办法
  • 调整去年管理费用怎么做分录
  • 营业外收入算未开票收入吗
  • 会计循环属于什么流程
  • xp系统无法打开网页怎么解决
  • xp安全模式怎么用
  • windows任务管理
  • linux pb
  • xp开机后蓝屏
  • 苹果mac安装win10系统
  • win10 ie无法使用
  • linux常用命令行
  • 东芝笔记本配件
  • 阿J的cocos2d-x学习笔记-元素消消看(四)-可发展的空间及游戏开发中的问题
  • Android性能优化 武汉招聘
  • unity做3d游戏
  • 跨域资源共享漏洞怎么修复
  • javascript HTML5 Canvas实现圆盘抽奖功能
  • linux timeline
  • 滚动的纸箱
  • javascript代码写在哪个标签里
  • jquery自动点击按钮
  • javascript中Date format(js日期格式化)方法小结
  • python面向对象编程心得体会
  • 税务局发票邮寄回来怎么读入?
  • 个体户 零申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设