位置: 编程技术 - 正文

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

  • 资产负债表里的存货包括哪些科目
  • 计提的增值税
  • 注会其他专业可以考吗
  • 定期定额户需要做账吗
  • 预期信用损失率计算公式
  • 非税收入一般缴款书一式几联
  • 利息收入需要交印花税吗
  • 网线的税收编码是多少
  • 小规模收到房租专票进项做账分录
  • 商贸企业印花税税率
  • 残疾人一次性奖金
  • 出口货物补税申报表
  • pe市盈率法
  • 押金 保证金
  • 2018工资个税税率表
  • 员工基本养老保险缴纳比例
  • 烟酒销售公司要交哪些税
  • 房地产开发企业应交税费科目
  • 金银首饰消费税怎么算
  • 税收分类编码格式
  • 劳务费代驾计入什么科目?
  • 其他应付款转增股本
  • 企业的应付账款确实无法支付,经确认后转作
  • uv价值是怎么计算公式
  • 二季度所得税申报时间
  • 跨年收入能开发票吗
  • mac怎么设置不自动开机
  • 城镇土地使用税征收范围
  • 无形资产入账摊销
  • 接受捐赠的固定资产可以入账依据是哪些?
  • PHP:disk_total_space()的用法_Filesystem函数
  • 餐饮行业采购
  • 海运发票模板
  • 运输公司的账务处理
  • 固定资产加速折旧方法
  • 委托加工物资验收入库的金额
  • linux的nfs如何使用
  • php jsondecode
  • 红冲费用如何处理
  • 日常公用经费包括资本性支出吗
  • 销项税每月有余额年底怎么处理
  • mysql使用指南
  • 深入理解jvm第三版pdf百度云
  • 城建税减免性质代码是什么意思
  • sql server概述
  • 不含税单价和不含税合价的区别
  • concat group
  • 增值税纳税人放弃免税权的规定
  • 土地交易服务费由哪个部门收取
  • 先给发票后付款做账
  • 缴纳残保金工资是实发工资还是应发工资
  • 城镇土地使用税每年都要交吗
  • 其它收益和递延收益的区别
  • 已开普通发票记账联丢失怎么办?
  • 会计凭证的做账原则
  • 在建工程转长期待摊费用是什么意思
  • 建筑企业结转收入成本
  • 电焊工劳保用品有哪些
  • 如何查企业是否有问题
  • 解析sql语句
  • 如何抛弃七情六欲
  • linux find -perm 详解
  • Ubuntu 14.04安装java的方法以Ubuntu14.04为例
  • osx 10.9
  • window1020h2
  • windows8.1怎么设置密码
  • cocos开发android游戏
  • jquery简单例子
  • node.js+express
  • Android Broadcast
  • css命名大全
  • javascript中attribute和property的区别详解
  • Node.js中的construct
  • python解析数据
  • python爬取app数据违法吗
  • android 图片裁剪 任意形状
  • 个税申报系统如何增加新单位
  • 预测收入遵循什么方法
  • 学校经费审批流程
  • 北京国税查询发票真伪查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设