位置: 编程技术 - 正文

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

  • 注册资本认缴到哪里
  • 印花税减半征收吗
  • 差旅费计入工资成本吗
  • 一般企业都涉及到哪些税
  • 居间费用超过3%剩余的怎样能拿到手
  • 如何区分劳务报酬与经营所得
  • 向个人借款计入什么会计科目
  • 签订合同未履行属于什么行为
  • 文化传媒公司取名字不带文化
  • 库存现金盘点表是不是原始凭证
  • 建筑业收入确认条件
  • 土地前期开发费用计征契税
  • 公司卖出汽车怎样做账
  • 服务费公司的账务处理
  • 营改增后建筑施工税率调整变化
  • 协议报价税率与开出的发票不一致怎么办?
  • 年底结转损益是什么意思
  • 定额发票什么时候失效
  • 劳务派遣企业的规上企业认定标准
  • 简易征收货物的运费
  • 资本公积可以怎么处理掉
  • 个人转账收入要缴税吗
  • 几年前的美元现在值钱吗
  • 13个点的税怎么算税金
  • 收到质量索赔款怎么入账
  • 留存收益会计科目编号
  • 给客户样品需要收钱吗
  • 开房租发票交的税,因优惠政策退税,怎么账务处理
  • 打开win10 defender
  • 合同结算账务处理分录
  • 财政补助收入的会计分录
  • csrss是什么程序
  • php接收数据的方法
  • php获取目录所有文件
  • 小规模纳税人开专票需要交税吗
  • 主营业务收入月末需要结转吗
  • pytorch 例子
  • 你别找了
  • php防止用户重度登录
  • mac apache php
  • 小微企业能申请留抵退税吗?
  • 电子票开票人复核人一样有影响吗
  • MySQL默认字符集修改
  • 小规模纳税人企业所得税优惠政策最新2023
  • sql聚合语句
  • 公司有残疾人如何申报残保金
  • 视同销售是怎么回事?
  • 专用发票与普通发票的区别有
  • 融资性无形资产的入账价值
  • 公司收到社保打款怎么办
  • 当月作废的发票是否需要报税
  • 产品检测费计入什么二级科目里
  • 收到采购免费赔偿怎么办
  • 工会发放节日慰问品种类
  • 过路费属于会计哪个科目
  • 资产减值损失和资产处置损益区别
  • 收入的利息如何计算
  • 固定资产清理和持有待售资产
  • sql基础问题
  • mysql批量更新多条数据
  • 资源管理器操作教程
  • windows2008 iis7如何取消目录执行权限的详细图文介绍
  • win7电脑网络慢怎么提升
  • win8怎么没有无线网图标不见了
  • marvell 网卡驱动
  • Metaio in Unity3d 教程--- 二. 创建自己的Application
  • jquery fadein 源码
  • 安卓 unity
  • javascriptfor循环九九乘法表
  • jQuery使用$.ajax提交表单完整实例
  • javascript总结笔记
  • c# for unity
  • unity3d中用四元数 Quaternion来对一个坐标点进行旋转的初步体会
  • 夜间模式图
  • unity投影交互开发
  • jquery对象与dom对象可以相互转换
  • js怎么判断日期大小
  • 保险公司代收2.8万
  • 按季度 税费申报日期
  • 税务稽查会打电话吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设