位置: 编程技术 - 正文

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

  • 个人出售二手房要交增值税吗
  • 应税和课税是什么意思
  • 公司账户转私人账户要多久时间
  • 增值税专用发票抵扣期限
  • 企业注销,账面余额怎样调账
  • 政府补助是属于什么财务活动
  • 机票改签费能否抵税
  • 发票上有字迹可以拿去作废吗
  • 所得税流程
  • 技术推广服务包含什么 奇瑞汽车
  • 购买电商平台
  • 工程劳务分包合同中的分包范围
  • 进项税不够有别的税吗
  • 以前年度留抵用完 不能抵欠税
  • 购买物品的专用会计科目
  • 应纳税所得额应纳税额公式
  • 关于有什么新的政策
  • 新公司企业怎么注册
  • 收到的劳务费发票进什么科目
  • 以前年度收入调整账务处理怎么做
  • 注册资本与注册资金的区别
  • 到期一次还本付息的利息怎么算
  • 稽查补缴增值税怎样做账
  • 社保公积金外包对员工的利弊
  • 餐饮企业原材料的核算,新城饭店为增值税一般纳税人
  • 应交税费的销项税额怎么算
  • 初级会计应收账款例题
  • 装饰装修工程月薪多少
  • 1.exe是什么文件
  • wamp设置
  • 记账凭证填制的依据
  • php fpm原理
  • 基西米河生态退化原因
  • 企业所得税合理方法包括
  • 酒吧送酒的人叫什么
  • vue面试题及答案2021
  • 采购员出差预借差旅费
  • 文件上传漏洞原因
  • 税费滞纳金计入增值税吗
  • squid 启动命令
  • 交易性金融资产的入账价值
  • 关于低值易耗品的说法中不正确的是
  • 供应商退回货款怎么入账
  • 小企业库存商品会计分录
  • 印刷电机特点
  • 营改增之后增值税怎么算
  • 边际贡献分析法案例
  • 商场超市收银员每日工作流程
  • 水利基金差额征收有哪些类型
  • 主营业务收入和营业外收入均属于收入
  • 民办非企业收到政府拨款分录
  • 应付账款的入账价值应当包括增值税的进项税额
  • 增值税是否计入在建工程
  • 美容院收入怎么做会计分录
  • 政府补助如何会计核算
  • 土地出让金如何缴纳
  • 购买东西进项税额怎么算
  • 结转库存商品需要附件吗
  • 以物易物有什么好处
  • 日常费用报销流程是什么样的?
  • 企业以非货币资产交换方式取得的长期股权投资
  • CentOS 6.5 i386 安装MySQL 5.7.18详细教程
  • 打印机向windows发送消息
  • win7系统u口怎么禁用
  • win xp怎么样
  • 系统占用90g怎么删
  • ubuntu做开发怎么样
  • win10系统怎么调整字体大小
  • 服务器centos7
  • exe是什么进程
  • win8系统教程
  • dos批处理教程
  • 计算机中丢失opencv_core249.dll
  • linux 每隔几秒执行一次
  • bash 删除文件夹
  • input lead
  • jquery的心得
  • javascript简明教程
  • genymotion-unable to load virtualbox engine
  • 百旺金赋天津客服电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设