位置: 编程技术 - 正文

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如何实现多进程
  • 国税的个税手续怎么办理
  • 跟踪路由如何实现
  • postgres.exe是什么进程 postgres进程查询
  • getcodebase
  • 银行借款利息支出计入什么科目
  • php通用分页类
  • 委托证券公司购入公允价值为100万元的股票
  • 公司企业名称变更,银行账号会变吗
  • vue面试题及答案2021
  • 手把手教你在瑞典停车
  • 看了这篇文章感触很深的说说
  • afn取消请求
  • ts类型声明 要为某个文件里的变量声明吗
  • nmap的命令
  • yolo v4 v5
  • 用ipconfig/all命令不能显示
  • php不同用户登录不同页面
  • 长期待摊费用为负数怎么调整
  • merge命令合并不了数据
  • 林木苗圃
  • 公对公账号没有卡能取得出来钱吗
  • element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选
  • db2数据库备份文件为bkd格式
  • 公司小规模纳税人转为一般纳税人,需要签补充协议吗
  • 小规模纳税人能开专票吗2023
  • 外贸企业出口货物会计分录
  • 增值税的预缴税怎么算
  • 贷款减值准备是什么意思
  • 稀释股权违法吗
  • 应交税费的记账分录
  • 车辆不在公司名下加油费可以进公司吗
  • 工程年底结账
  • 低值易耗品和物资的关系
  • mysqldump命令在哪里执行
  • windows内存诊断工具检测到硬件问题怎么办
  • win7修改sid
  • html5+css3新特性
  • nodejs 代码加密
  • github 最火的项目
  • python常用的安装扩展
  • Python遍历文件夹及子文件夹中的所有文档
  • python解读
  • 前端自动化开发软件
  • 批处理 !!
  • python运行py文件没反应
  • js调用url接口
  • cocos2dx:C++层通过JniHelper调用JAVA层代码进而调用Android手机应用接口
  • unity spine换装
  • js短信验证码60s倒计时
  • python string包
  • 怎么注册用户名短的淘宝账号
  • 北京市印花税减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设