位置: 编程技术 - 正文

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

  • 增值税发票系统怎么读入发票
  • 奖励旅游的概念解释
  • 增值税专票和普票的区别税率
  • 老项目增值税简易计税
  • 分配税后利润需交个人所得税吗
  • 土地使用权利
  • 小微企业所得税税率2.5% 10% 25%
  • 增值税发票抵扣勾选平台
  • 终止经营的会计处理
  • 以房抵顶工程款有效吗
  • 煤炭运输企业的环保方案及措施怎么写
  • 增值税简易计税账务处理
  • 收款收据是否可以做账
  • 收到一张建筑服务*施工费发票
  • 车船税法律制度的规定什么是以每米为计税依据的
  • 印花税计算公式例子
  • 企业所得税汇算清缴网上申报流程
  • 增值税普通发票和专用发票有什么区别
  • 7月1日起,自开农产品收购发票,抵扣税率是多少?
  • 无形资产入账价值包括注册费吗
  • 怎么查询财务章备案信息
  • 工资计税基数
  • 利润减库存为什么不等于现金
  • 工程项目处理废旧钢材怎么入账的
  • 来料加工企业如何计算产值
  • 一般纳税人小微企业认定标准
  • 分期收款确认成功怎么办
  • 零申报工会经费滞纳金怎么算
  • 1697510614
  • 主营业务成本净额计算公式
  • 收据和发票的区别图片
  • 支付服务器年租什么意思
  • win10平板模式怎么打开
  • 不动产进项税额转出计算公式
  • win10蓝牙无法连接,有解决方法吗
  • 房产无偿过户给朋友能让他还吗?
  • php实现日历
  • 旺阿雷自然保护区里的旺阿雷瀑布,新西兰北岛 (© Nathan Kavumbura/Getty Images)
  • 梅尔加足球俱乐部
  • 内外参标定
  • 公司给职工买工伤险流程
  • /ncrc命令
  • 应交增值税减免税额怎么结转
  • 兼职员工的工资怎么发放
  • 其他免税销售额怎么算
  • 施工营业额是什么意思
  • 广告公司纳税人类型
  • mongodb索引使用正则表达式
  • 企业盈余公积的主要用途是
  • 开具免税的发票,"税率"栏该如何填开?
  • 出差的招待费应由谁承担
  • 资产负债表其他应收款包括哪些内容
  • 员工高工资
  • 企业做账的流程图
  • 应付账款预付账款应收账款预收账款
  • 未确认融资费用摊销额怎么计算
  • 小规模纳税人购入货物收到增值税专用发票
  • 债务重组的方式不包括债务转为资本
  • 暂估应付账款的科目编码
  • 没有发票也可以报销
  • 小规模纳税人变更一般纳税人条件
  • 小规模企业购买车辆发票可以抵税吗
  • windows禁止安装
  • 下载win10 32位
  • linux查inode
  • win10正版免费升级
  • window10自带录屏录制不工作
  • 安卓listview用法
  • perl和shell的区别
  • cocos2d怎么用
  • 使用scp获取远程linux服务器上的文件 linux远程拷贝文件
  • 手把手教你学python
  • nodejs使用视频教程
  • 远程计算机的命令
  • Unity WWW网络动态加载和储存在本地
  • threejs入门教程
  • 深圳国税局发票查询
  • 税务局窗口业务
  • 电子税务平台怎么开发票
  • 增值税进项发票如何做账
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设