标签:service word 消息通知 有一个 tps roi 缓存 cti can
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、线程池来调用方法。
标签:service word 消息通知 有一个 tps roi 缓存 cti can
原文地址:https://www.cnblogs.com/Supperlitt/p/12762679.html