温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,接下来呢,我们讲解一下取消注册源码的分析,也是一行代码啊,Even bus.get default.unresist传进去一个订阅者啊,This,好,我们看一下,也就是这行代码啊安ist,同时呢,将这个Dis传进去,Dis指的就是当前这个main activity,好,也是它的订阅者进来,进来之后通过这个集合获取所有啊订阅者所有的事件类型啊,还记得他吗?啊,他是什么时候用的?是不是在这个注册的时候啊,注册源码中有一个这个事情。将该事件类型添加当前订阅者啊到这个集合中,也就是将所有的这个订阅者的事件类型,包括这个时间类型啊,Message event类型都通通传到这个types by啊这个集合中啊,那在我们解注射的时候就用到了它啊,怎么用的呢?看一下。
01:01
你既然有了这个集合,那么将你当前订阅者传进来,那么我就能获取到你当前这个may眼activity中所有订阅的事件类型啊,那我这里指的其实就是这个两个事件,一个是实质类型,一个是message event事件类型啊,这两个类型,那拿到它之后有什么用呢?啊,那么我就可以循环便利这个事件类型啊,一个一个事件去处理,比如说当前我传进来这个事件类型就是实件类型的。那么那将这个实际类型的世界传进来啊,进来之后拿着这个世界又去这个集合中去查找所有的定位者,这个机合还记得吗?哎,它存放的是不是所有的订阅者呀?那它根据的是不是事件类型去存档,哎,根据这个事件类型存放的是所有的订阅者,这里面就包括你这个may X这定阅者。啊,同时呢,它还可能还有其他的,比如说当前只有made的,那可能还有这个B的啊C的等等,都是有这个时间类型的这个事件。
02:04
啊,这个意思,那么拿到它之后,你就可以进行循环便利啊,循环及便利啊,如果查询的订阅者是当前页面的订阅者才删除,也就是什么意思啊,如果你当前是mayx,对T,你要解除册这个maxt对吗?啊这面有个B的。只有这个main activity,我循环变量,这我才将这个。哎,DD者给他移除掉。啊,如果是BX的,那么我直接挑过了对吧?啊不执行就这意思,所以说这有个判断啊,判断你是解注册谁啊,那么好,这个事件处理完毕之后啊,再返回回来。回到这儿。同时呢,我再将这个事件类型啊移除掉,也就是将这个订阅者啊,比如说你传的may X,它的事件类型啊,在这个集合中啊移除掉,它已经不是不复存在了。
03:04
啊,不复存在了,是这个意思,好。
我来说两句