位置: 编程技术 - 正文

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

  • 收到失业金返还什么意思
  • 个体工商户生产经营所得税税率表2021
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 单利率和复利率excel计算公式
  • 印花税是根据什么征收的
  • 小规模纳税人可以开1%的专票吗
  • 小规模纳税人与一般纳税人区别
  • 发工资多发了可以要回吗
  • 代扣代缴城建税可以享受六税两费
  • 工程发票是不是都要异地预缴
  • 营改增以前建筑税率
  • 待处理财产损益科目
  • 医院开发票需要税号吗
  • 银行代收费业务会计分录
  • 需要清卡才能开票吗
  • 电梯什么情况下可以换个新的
  • 发票和实际业务发生时间不一致
  • 住宿发票3%和6%区别
  • 一般纳税人汇算清缴操作流程
  • 建筑工程劳务费占比例
  • 华为mate50耳机孔和充电口一样吗
  • 投入资本回报率是总资产报酬率吗
  • 设备计提折旧的方法
  • 广告法 保险公司承保
  • 预缴增值税附加税款怎么填写申报表
  • 王者荣耀段位分段
  • 会计科目暂存款是什么意思
  • G40/50-70、SR1000随机Linux改安装Win7系统的实现方法
  • 个体公司转账给私人
  • php的工作流程
  • 交纳印花税
  • 材料明细账的登记范本手写
  • php单独运行
  • 公寓增值税税率是多少
  • 太平鸟的翅膀上有几道红羽毛
  • 合伙人资本属于股东吗
  • 微信小程序全栈开发实战
  • 个人所得税累计扣除是什么意思
  • 如何使用rank函数排名
  • 销售退货和销售折让的区别
  • autocut跟踪调节
  • more命令 查找
  • 金融资产减值的三个阶段
  • 百旺连接服务器失败,是否使用离线文件进行更新
  • 金税盘问题
  • 销售不动产统一发票英文翻译
  • 代销手续费未付怎么处理
  • sqlserver表数据导出导入
  • 会计核算形式的设计具体内容包括
  • 安全生产费如何计量
  • 购进原材料发生的保险费
  • 利得和损失计入所有者权益的情况
  • 公司注册资本减资流程
  • 预缴增值税可以抵扣销项税吗
  • 快捷酒店财务一般几个人
  • 茶农的茶叶自产自销需要办哪些证
  • 金蝶软件标准版多少
  • 财务报表的一般构成要素
  • 进项税转出补缴增值税 城建税及两费
  • 发票被认证
  • 残保金新企业用交吗
  • sql存储过程的作用
  • sql语句大全实例教程
  • ubuntuiso
  • windows电脑图片传到iphone
  • linux系统查看系统信息
  • linux中使用find命令查找文件
  • linux系统入侵检测软件有哪些
  • perl 字符串处理
  • perl cgi
  • js组件是什么
  • ssm vue
  • android 开发 教程
  • unity获取鼠标
  • flask框架官方文档
  • [置顶]公主大人接下来是拷问时间31
  • 莱鸟人集团
  • javascript怎么样
  • 长沙个体户缴纳个税
  • 广东省税务局网络不通
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设