首页 > 编程语言 > 详细

andorid jar/库源码解析 EventBus

时间:2020-04-23 18:52:29      阅读:56      评论:0      收藏:0      [点我收藏+]

目录:andorid jar/库源码解析 

EventBus:

  用于不同Activity,Service等之间传递消息(数据)。

 

A:onCreate定义   EventBus.getDefault().register(this);

  onDestroy定义 EventBus.getDefault().unregister(this);

       添加public方法,一个Object参数(所有继承与Object的对象),用于接收消息通知。

B:使用  EventBus.getDefault().post(new 对象);  通知消息(这个时候,如果是同一个类型对象,A中的方法可以收到通知)

 

源码解读:

EventBus.getDefault()

  使用,双重判断,创建/获取一个EventBus对象。

.register(

 

  注册当前类对象,到EventBus的缓存中,保存当前类,包含 Subscribe 注释的public方法且只有一个参数。

同时安装参数对象的种类,对数据进行在分类存储,便于查找。然后循环,当前类的父类,同样的操作,直到,父类StartWith android.、androidx.、java.、javax.。

.unregister(

  移除刚刚注册的对象,和方法信息,和注册的方法成员的类型对应的类信息。

.post(

  从记录注册表中查找,当前对象对应的注册类集合,数据记录的时候,保存的集合,进行循环调用。已注册方法(调用 cancelEventDelivery,可以结束调用后续方法)。

方法有多种调用模式,其实内部就四种调用方式:1、直接调用方法。2、主线程,使用自定义Handler来调用方法。3、使用新建线程,来调用方法。4、线程池来调用方法。

 

andorid jar/库源码解析 EventBus

原文:https://www.cnblogs.com/Supperlitt/p/12762679.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!