码迷,mamicode.com
首页 > 编程语言 > 详细

andorid jar/库源码解析 EventBus

时间:2020-04-23 19:09:02      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:service   word   消息通知   有一个   tps   roi   缓存   cti   can   

目录: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

标签:service   word   消息通知   有一个   tps   roi   缓存   cti   can   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!