位置: 编程技术 - 正文

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

  • 房产税如何进行税源采集
  • 进口产品销售需要什么资质
  • 支付所得税属于筹资活动吗
  • 员工意外险费用
  • 原材料暂估入库的账务处理有哪些
  • 人员新增申报表
  • 律师费的发票税率怎么算
  • 个人投资者取得现金红利的过程不用支付利息税
  • 具备什么条件的土地可以开发
  • 工业企业生产费用按经济内容划分,一般称为
  • 私房装修费能在公司报销吗
  • 土地置换账务处理流程
  • 股息红利税补缴什么意思
  • 银行对公贷款利息多少
  • 新企业如何办理税务登记
  • 补缴的以前年度的税费及滞纳金用更正申报企业所得税吗
  • 公司提供职工午餐违法吗
  • 利润分配从哪里取数
  • 工资扣除水电费扣个税
  • 房地产开发企业会计科目
  • 个人出租仓库需交税吗
  • 养牛场增值税的税率是多?
  • 企业所得税收入是含税还是不含税
  • 去新建的外贸公司好不好
  • 回购股票手续费会计分录
  • 将捐赠收入计入资本公积转增增值税
  • 应征增值税不含税销售额和免税销售额
  • 可以在企业所得税税前扣除的税金有
  • 小企业会计准则成本核算方法选什么
  • 企业计提的工资如何算
  • 佣金回扣如何做账
  • 外贸出口企业退税计算
  • 职工薪酬核算的内容
  • php字符串变量
  • 代垫运费会计分录怎么写
  • 以太网默认网关怎么查看
  • javascript语言基础
  • yii2权威指南
  • PHP isset()与empty()的使用区别详解
  • 去年多计提的所得税怎么调整
  • python3 静态方法
  • 车间管理人员为什么是制造费用
  • 电子承兑非拒付追索待清偿
  • 免税收入包括
  • 小规模纳税人怎么核定税种
  • 返聘人员的工资需要交税吗?
  • node运行vue项目
  • sqlite3 top的查询及limit语法介绍
  • 管理费用借贷方不平
  • 净资产包含哪些项目
  • 三险一金的专项扣除标准
  • 企业所得税的营业成本怎么填
  • 受托机构名称填什么
  • 购货方收到销售折扣发票怎么入账
  • 税盘维护费可以年年抵扣吗
  • 转让无形资产或其他资产
  • 融资租赁固定资产折旧年限
  • 跨境电商财务如何报税
  • 公司如果不交社保会怎么样
  • 企业因受疫情影响导致停工停产的
  • 不良品怎么入账
  • 增值税免抵退税和免退税的区别有什么?
  • 滞纳金一般什么时候交
  • 其他应收款可以挂公司吗
  • 收到保险公司的赔款计入什么科目
  • 彻底关闭windows10自动更新工具
  • liunx系统常用命令
  • 介绍两个很常用的成语
  • windows8如何设置电脑锁屏时间
  • window sdk for windows 8.1
  • win8查看已连接的wifi密码
  • 安装ghost win7
  • opengl矩形
  • 清除cookie是什么意思
  • jquery入门
  • 河北省税务总局电话
  • 广西税务局增值税发票查询平台
  • 计算车辆购置税公式
  • 沈阳沈河区税务局待遇
  • 没工作个人所得税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设