位置: 编程技术 - 正文

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

编辑:rootadmin
Otto源码分析

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

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

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 app 源码)

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:ValueAnimator的使用举例 由来很多人对ValueAnimator不熟悉,其实ValueAnimator的功能是非常强大的。它按照设定的时间和规则,在Update方法中将value友from变化到to。说起来很简单~动画

android:模拟水波效果的自定义View Github地址:

android:3D垂直翻转动画-FlipAnimation 需求对ImageView进行类似于翻纸牌的动画解决各种Animator的组合第一步动画:动画代码文件1,card_flip_left_out.xml?xmlversion="1.0"encoding="utf-8"?setxmlns:android="http:/

标签: android app 源码

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

上一篇:android:Background线程池和UiThread线程池

下一篇:Android:ValueAnimator的使用举例

  • 三公经费指的是什么
  • 房产税城镇土地使用税税率
  • 所得税费用税前扣除项目
  • 计入税金及附加的科目
  • 私人网银可以转到对公账户吗?
  • 汇算清缴税费怎么入账
  • 黑盘报税流程视频教程
  • 经常做无票收入没有通过公户收款会有问题吗
  • 金税盘处于报税期是什么意思
  • 纳税申报方式如何更改
  • 哪些项目容易漏缴个人所得税
  • 采取简易计税外经证核销需要哪些资料?
  • 转出未交增值税借方余额怎么处理
  • 闲置资金怎么说?
  • 净利润含不含所得税
  • 继承房产出售时交个人所得税税率是多少
  • 简易征收企业所得税几个点
  • 劳务派遣一般纳税人可以简易征收吗
  • 外贸企业代理出口销售业务发生的费用
  • 预提厂房租金
  • 地铁充值发票会透露个人账户信息吗
  • 所得税费用属于损失吗
  • 先开票还是先预约
  • 个税三险一金指什么意思
  • 如何理解内容
  • pqv2isvc.exe - pqv2isvc是什么进程 有什么作用
  • 债权转增资本的条件
  • 土地增值税清算的条件
  • 个体工商户加盟咖啡店
  • 圣保罗大教堂是什么教
  • 绿化管理服务经营范围
  • 营改增后土地增值税如何计算
  • php文档系统
  • gpt-3的功能
  • chatbot下载
  • 其他应付款贷方余额表示谁欠谁
  • 折扣返利的账务处理
  • 浏览器加域名
  • mac的配置
  • 进口消费税应该记到什么科目
  • 资产负债表递延所得税资产计算公式
  • 收到赠送的货物会计分录
  • 企业所得税的营业成本怎么填
  • 企业回购本公司股票会导致所有者权益增加
  • 计提坏账准备和确认坏账损失
  • 承兑能随便给别人看吗
  • 累计预扣法税率表
  • 技术人员工资计入什么科目
  • 分配现金股利如何做会计分录
  • 现金存入银行凭证怎么写
  • 金税盘发票认证怎么操作流程
  • 农民工工资专用账户管理制度的办法
  • 劳务派遣证验资
  • 小规模纳税人所得税优惠政策2023
  • 在建工程转固后计提折旧
  • 利得与损失的四种类型
  • 发票专用章刻制
  • 更换账簿需要注意哪些问题
  • SQL函数substr使用简介
  • 一条sql语句搞定一个数据
  • win7操作系统中将打开窗口拖动到屏幕顶端
  • XP系统怎么删除密码
  • centos中rpm包怎么安装
  • windows有哪些
  • win7系统关机很慢什么原因
  • ubuntu20.04最小化安装教程
  • centos6.10安装教程
  • haozipsvc.exe是什么
  • 苹果mac系统怎么更新
  • macbook2020款改硬盘
  • javascript中的数据类型分为两大类
  • cocos2dx quicxk 3.3 导入Json文件布局 UI
  • react native usestate
  • 京东试用js脚本
  • 运行node.js的应用程序服务器
  • python面积
  • 税务局监察室主任职位说明书
  • 进口设备需要资质吗
  • 境外付款需要什么手续
  • 怎样才能做好企业总经理?谈谈你的看法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设