位置: 编程技术 - 正文

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基础知识入门)

  • 小规模多计提增值税税率
  • 房地产印章图片
  • 季末计提所得税可以根据本年利润计算吗?
  • 失业保险稳岗返还是政府补助吗
  • 本期进项税大于销项税
  • 外单位人员报销差旅费会计分录
  • 有两种税率的如何填申报表
  • 企业合并固定资产增值的规定
  • 汇票贴现的账务处理
  • 个人开劳务发票是否需要交纳个人所得税呢?
  • 以资抵债是利空还是利好
  • 原材料的实际成本是什么
  • 全年一次性奖金税收优惠政策
  • 雇主责任险税前列支
  • 增值税发票如何红冲
  • 外籍人员个人所得税政策
  • 企业支付员工的工资
  • 3%增值税专用发票可以抵扣多少
  • 发票的校验码被公章覆盖了怎么办
  • 商品退回顺丰代收怎么办
  • 合伙企业合伙人数量
  • 有关于秋天的诗句
  • 在win7中创建快捷方式可以创建什么
  • 餐饮企业原材料的核算,新城饭店为增值税一般纳税人
  • mac鼠标移动到角落立刻显示桌面
  • 包装破损导致物品损坏
  • 什么是摊余成本计量的金融资产
  • PHP:iconv_mime_encode()的用法_iconv函数
  • 生产员工福利计什么科目
  • 没有发票怎么做研发费用
  • 车船税不计提怎么做分录
  • reactjs路由跳转
  • php全局变量和局部变量
  • vue中使用require报错
  • 残保金是职工薪酬吗
  • 公司支付工伤赔偿,是先签字还是先打钱
  • python进行数学建模
  • 会计调整以前年度遗留问题查不出来说明怎么写
  • 增值税留抵税额科目如何使用
  • 什么叫境外所得
  • 用于职工福利的固定资产折旧
  • 国外货物进入保税仓需要办理什么
  • 开个分公司有啥好处
  • 公司雇佣退休人员工资怎么发
  • 建筑业周转材料
  • 银行承兑到期之前怎么办
  • 营业外收入账务处理方法
  • 电信增值服务费会计科目
  • 购进原材料如何结转成本
  • 资产负债表金额的来源一般是
  • 非流动资产基金借贷方表示
  • 五金配件生意好做吗
  • 旅游费的发票可以进成本吗?
  • 金税系统怎么填写开票信息
  • 延期支票可以撤回吗
  • 如何学会计做账视频
  • sqlserver复制表语句
  • Office 2007在Windows Vista中出现的反常字体问题的解决办法
  • Linux磁盘分区的作用
  • ubuntu安装quagga
  • created directory cfg怎么办
  • windows xp桌面图标
  • win7玩dnf总是未响应
  • linux中make
  • Ghost XP SP3 YN8.0装机版 (雨林木风)
  • win7开机每次都要输入用户名
  • win7桌面怎么设置到d盘
  • plugin怎么安装
  • js类继承的几种方式
  • 批处理 输入密码
  • 使用jquery实现的项目
  • three.js 教程
  • 你应该知道的几个问题
  • ndk dose not contain any platform
  • javascript获取css
  • js link global
  • 固定资产评估增值的税务处理
  • 个人所得税如何申报详细流程
  • 河南地税app
  • 税务宪法宣传简报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设