位置: 编程技术 - 正文

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的使用举例

  • 锦州税务师考试在哪个学校
  • 一个人可以做多少家公司法人
  • 进项税额转出借贷
  • 什么时候库存商品什么时候主营业务收入
  • 广告公司属于服务企业吗
  • 生产过程中产品的质量保证体系
  • 有限公司缴税
  • 维护服务合同可不可以一直续签
  • 微信红包税前扣除
  • 补充养老保险税前扣除政策
  • 税字号是不是纳税人识别号
  • 增值税发票丢失可以用复印件入账么
  • 小规模纳税人月末结转增值税
  • 备案类减免税有几种类型
  • led显示屏的销售话术
  • 银行与银行之间转账会计摘要
  • 未分配利润可以用来干什么
  • mac快捷键是什么意思
  • 克卢恩国家公园在哪里
  • 广告费发票内容是什么
  • 简述金融会计的主要职能
  • 现金长款怎么做会计分录
  • 个人独资企业怎么做账
  • laravel执行seed命令
  • 企业产房屋拆迁
  • php uasort
  • vue动态组件component原理
  • opencv dng
  • es5和es6的区别
  • 增值税专用发票抵扣期限
  • 电子发票冲红后对方能查到吗
  • 高新技术企业相关税收政策
  • sql实例命名规则
  • 应交增值税如何计算,如何进行会计处理
  • 银行业的利润率
  • 报销凭证粘贴单怎么用
  • 个人去开票要交税吗
  • 现金账怎么登记
  • 完全卸载mysql8.0
  • 新会计准则股权投资
  • 取得交易性金融资产的交易费用
  • 哪些情况发票可以红冲
  • 收据能否入账
  • 建筑工程和建筑装饰工程的区别
  • 律师事务所收取费用有标准吗
  • 企业租车流程
  • 出口退税申报系统自检数据撤销
  • 原材料跌价分录
  • 福利费可以计入销售费用吗
  • 存货管理的类型
  • 以前年度损益科目类别怎么填
  • 支付宝收入什么意思
  • 装饰公司工地
  • 资产负债表中没有其他应收款
  • 存货期末成本的计量
  • 电子支付支付是什么意思
  • 企业注销预付账款怎么做
  • 房地产开发企业分为几个等级
  • freebsd12安装
  • xp系统与win7系统的电脑怎么组成局域网
  • win7系统注册表损坏无法启动
  • 桌面上有desktop.ini文件
  • win10磁贴保存位置
  • linuxwho
  • win7网页有错误如何修复?
  • cocos2dx游戏有哪些
  • python写一个备份文件功能
  • 地形图高程点坐标高程提取
  • jquery中的选择器有哪些
  • jquery简单例子
  • unity获取当前位置
  • jquery函数大全
  • jquery :not
  • 四川税务局发票下载
  • 粮食企业所得税优惠
  • 个人所得税自行纳税申报表a表填写模板
  • 车辆购置税完税证明怎么查询
  • 沭阳税务局举报电话
  • 金三系统企业所得税如何变更所得税缴纳方式?
  • 2023年车辆购置税优惠政策有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设