00:00
好,今天呢,大海哥给大家讲解上硅谷安卓企业级技术第十讲世界总限制bus啊,In the bus,这个in the bus啊啊目前这个应用还是非常广泛的啊啊它能应用在哪哪些场景呢?主要是应用在这个程序内部的各组件之间啊,还有组件与这个后台线程之间啊,通信啊,比如说你这个请求完网络数据啊,然后呢,将这个请求的数据传递到各个模块啊,进行世界分发啊,类似于这个广播啊,同时呢,还可以进行这个两个flag功能之间啊进行通讯啊都可以啊,用的是相当相当广泛啊,而且非常简单,使用起来啊下面呢,这个是这个bus,这个giar下载地址啊,给大家看一下。啊,这个呢,就是这个github上的bus啊这个代码,这下面呢,还有一些描述啊,很显然这是这个英文描述的是吧?啊是这个老外写的非常好啊写的。
01:05
啊,这个呢,我已经给大家下好了啊,大家就不用再下了,下面呢是这个in这个使用步骤啊,这里面呢,一共分六步啊,非常简单,首先第一步呢是添加价包啊,到这个Li LIS啊这个文件夹下。这是最基本的导包啊,第二步呢,就是注册啊,你需要提前注册一下啊,然后呢,还需要这个解注册主要是为了这个防止内存泄漏啊,同时呢,你要发消息啊,还要创建一个发送消息的类啊,一个类消息类啊,然后呢,同时还有一个发送消息啊,POS的一个消息,把这个消息发送发送出去之后啊,注册了这个消息的人就能收到这个消息,那么这个接收消息啊啊有这么四种消息类型啊,分别哪四种呢?第一个是这个may啊,May事件它表示什么呢?表示这个方法在主线程执行啊,主线程中执行,也就是说我接收到消息之后,我这个方法中啊,所有的事情都是在主线程中去处理。
02:12
还有一个这个是background,这个表示呢,该方法在后台执行啊,也就是在子线程中去执行啊,但是呢,它有个特点,不能并发处理啊,目前你这个直线程开完之后啊,那必须得等待它结束之后才能去处理其他线程啊,这就是不能并发处理,那下面这个呢,是这个E啊,它表示的是后台执行,但是呢,可以异步并发处理。啊,同时多个线程都可以在后台啊去跑啊异步的啊下面那个呢,是这个posting。它表示的是这个方法和消息发送方在同一个线程中执行,也就是说你发送方在主线程中啊去处理的事行,那么接收方这个所有的方法啊,也是在这个主线程中,如果你发送方是在直线程中,那么你这个接收方呢,也是在直线中去执行这个事情啊,这个事情啊是非常重点重要的事情,大家一定要认真去理解一下啊,四种类型分别是这个主线程啊,子线主线程子线程啊,这是主子线程呢,这个是不能并发处理的,同时只能处理一个线程,这个呢是这个异步的子线程啊,同时多个子线程可以同时运行的。
03:32
这个呢是这个表示是发送方是什么线程,那接收方就是什么线程,这也是个事情啊,重点的事情多说两遍,那再往下呢,就是这个粘性事件啊,粘性事件它是什么意思呢?啊,之前说的使用方法需要先注册啊,就是你在这个要想接收这个事件呢,你必须得先注册啊,然后呢,再发送这个消息才能接收到这个事件,但是这个粘性事件什么呢?哎,你可以先发送事件,嗯,我也可以不先注册。
04:05
等到我需要的时候呢啊,我再接收啊,再接收就是有个延迟这个过程,延迟注册这个过程啊,一会儿呢,有这个例子啊,给大家做一下啊,下面呢,也是分这么五步啊,不一一说了,跟上面类似啊,之后呢,我们会设计两个例子啊,分别是在这个主线程中啊,就发送消息啊,这个一个啊代表这四个啊,其实其他呢都是类似的,只是举个例子就可以了啊再一个呢,就是这个发送粘性事件啊,这个特殊的粘性事件,给大家举个例子啊,让大家理解一下啊,这就是呢,这个even bus,我们要做的事情。
我来说两句