位置: 编程技术 - 正文

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

  • 房屋出租何时缴税
  • 增值税是价内税,消费者是税款的最终负担者( ) A对 B错
  • 给职工租房的房租怎么进行账务处理?
  • 收到社保局退回的社保费
  • 出口商品认证
  • 个体工商户需要交税吗?怎么交?
  • 境外公司汇款给境内个人
  • 高新企业如何申报纳税
  • 批量转账和代发工资
  • 固定资产丢失
  • 行政事业性收费票据
  • 哪些会计科目需要结转
  • 外贸企业出口采购流程
  • 房地产企业进项税额转出
  • 其他应付为负数怎么处理
  • 增值税欠缴税会不会影响企业的信用
  • 企业购买的原材料确认为资产,这属于会计确认的范畴
  • 收回过去已确认的坏账
  • 未分配利润的计税基础是
  • 固定资产进项抵扣新政策2021
  • 新办企业需要做什么
  • 反写状态已反写是什么意思
  • 火车票飞机票计入什么费用
  • 委托销售的增值税税率
  • 股东垫支开办费
  • 差旅费报销单填写模板
  • 工资结算天数
  • win11正式版发布
  • linux中压缩
  • 腾讯电脑管家中蓝牙在哪
  • 年报的企业主营业务活动
  • ges.dll
  • 利息费用扣除限额债资比
  • 套期工具的会计分录
  • 存货报废如何账务处理
  • 报销生育险怎么报
  • css设置背景颜色透明
  • 债务重组收益会计处理
  • 增值税申报时,里面没有数据怎么办
  • php 写入excel
  • pythontime模块
  • lscpu命令 显示CPU架构信息
  • 递延所得税什么时候交
  • 残疾人就业保障金申报时间
  • 装饰公司的开票范围
  • pycharm cant find main
  • wordpress 批量添加标签
  • 政府补助免征企业所得税条件会计分录
  • sqlserver时间戳数据更新时也修改默认时间
  • sqlserver2008sa用户不能登录
  • 小规模纳税人企业所得税2023
  • 教育培训行业税目分类
  • 买下土地
  • 市政建设配套费 契税
  • 区分好坏
  • 专项拨款会计分录
  • 预付账款属于哪一类账户
  • 往年附加税退税怎么做
  • 发票管理办法实体法还是程序法
  • 银行回单中借贷表示什么意思
  • mysql 加锁处理分析
  • 隔空传送怎样使用苹果
  • boxjs
  • Centos系统里screen命令如何使用?Centos系统里screen命令的使用方法
  • win8系统升级到win10东西还在吗
  • vmstat命令
  • 苹果系统数据怎么清掉
  • win7可以免费升win10
  • nclaunch.exe - nclaunch进程有什么用 是什么意思
  • linux vmware命令行
  • linux的移植
  • opengl绘制球面
  • python登录网站爬取数据
  • 抽象类和接口的区别简答题
  • android触屏事件的处理
  • NGUI之UILocalize
  • 企业所得税核定征收和查账征收的区别
  • 广东省国家税务总局电子税务局
  • 没有代理记账资格的公司能代理记账吗
  • 增值税专用发票和普通发票的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设