位置: 编程技术 - 正文

Android:Otto源码分析(android源码分析)

编辑:rootadmin
Otto源码分析

推荐整理分享Android:Otto源码分析(android源码分析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android looper源码,android systemui源码分析,android demo源码,android glide源码分析,android glide源码分析,android looper源码,android dialog源码,android systemui源码分析,内容如对您有帮助,希望把文章链接给更多的朋友!

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源码分析)

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学习 - 问题1 - 项目名称:1-hello运行报错 一、问题Eclipse-ADT编写helloWorld程序,项目名称1-hello,运行报错InstallationfailedduetoinvalidAPKfile!二、原因项目名称不能以数字开头,只能以字母或下划线开

Android学习 - Android图片变换处理 Matrix图片变换主要讲解一下如何处理对一个Bitmap对象进行处理,包括:缩放、旋转、位移、倾斜等。在最后将以一个简单的Demo来演示图片特效的变换。M

Android学习 - 圆形ImageView 先看下效果图:publicclassRoundedImageViewextendsImageView{privateintborderThickness;privateintborderColor;privateBitmapimage;privateContextcontext;privateintwidth=0;privateintheight=0;publicRou

标签: android源码分析

本文链接地址:https://www.jiuchutong.com/biancheng/381105.html 转载请保留说明!

上一篇:Android学习 - Android应用如何支持屏幕多尺寸多分辨率问题(android怎么学)

下一篇:android学习 - 问题1 - 项目名称:1-hello运行报错(android基础知识入门)

  • 总公司和分公司可以在一个城市吗
  • 本年利润总分类账图片
  • 企业所得税的研究论文范文
  • 收购发票能使用几次
  • 增值税退税什么时候办理
  • 商业收入会计分录
  • 付给其他公司的利息怎么做账
  • 公司接待考察团需要准备什么
  • 购买国税金税卡年费应该怎么做账务处理?
  • 把材料退给客户怎么处理
  • 其他应收款属于流动资产吗
  • 广告宣传费用的计算方法
  • 增值税普通发票对方作废了怎么办?
  • 买粽子会计怎么做账
  • 内含报酬率的计算公式插值法
  • 预缴纳税申报怎么报
  • 电子银行承兑如何背书给别人
  • 实收资本记错账如何调整账面价值
  • 公司购买二手车怎么抵税
  • 海关新增成交方式exw条款,如何退税?
  • 无偿接收股权
  • 网络工程完工后干什么
  • 产品种类很多月末怎么结转生产成本
  • 小规模无票收入后期开票怎么申报
  • windows10专业
  • 未知文件格式怎么打开
  • 债券的到期收益率取决于
  • 公司运输车辆加油会计分录
  • 公司注销往来账的账务处理
  • pvlsvr.exe - pvlsvr是什么进程 有什么用
  • php实现简单数字变量
  • 抵债资产会计核算
  • PHP CURL CURLOPT参数说明(curl_setopt)
  • win10蓝牙驱动怎么安装程序
  • 售后租回交易的实质是什么
  • 本单位生产的水泥属于
  • 年末进公司有年终奖吗
  • echarts 柱状图滚动与gridlayout移动冲突
  • framework3.5怎么打开
  • es工具类
  • php无限分类实现不实用递归
  • 红字信息表重复了怎么办
  • 法院判决后的利息
  • 出售无形资产损益怎么算
  • 有效税额可以更改吗
  • 内账的账务处理
  • 增值税加计抵减政策10%和15%
  • 内部审计主要目的
  • 购货方收到红字发票计入进项税转出还是进项税额负数?
  • 差旅费所得税扣除标准2023
  • 未收到投资款可以确认实收资本吗
  • 汽车以租代售合法吗
  • 低值易耗品库存
  • 支付职工培训费是什么科目
  • 正常存货周转率多少次合适
  • 永续债举例
  • 建筑服务红字发票需要填写备注吗
  • 计提了减值准备怎么算折旧额
  • 职工福利费的好处
  • 商业企业的会计科目设置
  • sql server2019数据库
  • win 10如何安装
  • linux必学的60个命令及使用
  • pavkre.exe - pavkre是什么进程 作用是什么
  • win7电脑ip地址怎么查
  • linux中sed命令
  • 密钥升级win10专业版有问题吗
  • js excel导入导出
  • win7 android studio
  • python中flask模块
  • jQuery实现表格文本框淡入更改值后淡出效果
  • jquery的实现原理
  • python文件rb
  • js会话
  • 临时占用耕地是否需要缴纳城镇土地使用税
  • 税务数据清理变态
  • 税务局开蔬菜普票需要几个点
  • 江苏税务app操作手册
  • 北京朝阳区地税局地址电话
  • 累计计税金额是怎么得出
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设