00:00
来看另外一个方法loop,这个loop呢,是不需要我们启动了,系统一启动它就启动了啊,它里面有一个方法。就勾的方法。啊,我们说过了,他勾什么东西。是不是勾消息啊,好,大家看他先拿到当前的路对象啊,这些东西不用看,等于空气怎么着,大家看看去什么去。是不是去取那个消息队列一下呢。来,我们来看一下它啊,这一个叫loop loop是用来干嘛的呢?从哪个里面获取message q中获取当前需要处理的消息啊,并交给谁处理,是不是handle处理啊,啊,Handle来处理啊,就这样简单的一个事好了,但是呢,这里面就涉及到这样一个方法,我们来看一下。
01:12
首先是这一个方法。啊,这是它最核心的一个方法啊,这个方法呢,就是啊核心方法,核心方法就是干这个事嘛,好,我就不写它的作用呢,下面我们来看它里面的代码。啊,这一个呢,是当相当于得到路对象啊,你最终肯定要对象来干活嘛,对象好,这一个得到什么呀,是不是消息队列对象啊,啊消息队列对象我把它写在大以后呢,得下去以后看看啊。嗯,消息队列对象好,下面。
02:02
来了一个什么?是不是无限循环呢?我告诉大家,这里没有什么break。没有好,那有就直接就掉了,没有那不行死了嘛,对不对。那也不一定啊,来。好,这是一个无限循环啊。啊,无限循环,好,来看一下第一句话这句话。干什么去?是不是从消息堆里面取一个消息出来呀?好,这句话就有意思啊,写一下就是从消息队列中取出消息对吧?取出消息,嗯,好,它右边有一个注释,非常的关键,没可能不block。
03:06
主色什么意思?就是说这一个方法并不一定马上返回吧,对不对,就这说明有可能阻塞嘛,那我们就我们是不是得看一下这个方法啊,开始想不到这个方法,现在能想到了,诶这个里面还有非常重要的方法,一个是放消息,一个是取消息,这个不是这里面的他吗?这是取消息吧。刚才我们是不是研究的是放消息啊,这个消息也比较厉害,来看的,这来我们来看一下。啊,它这个里面他也在做一个什么东西。是不是也在做一个无限循环,但是它会跳出来的,你放心啊,啊大家看到这里啊,看到这。这个里面一上来就有一句话啊,这一卦也挺关键的。啊,什么意思呢?这又是一个什么?
04:03
本地方法,这一个方法就会产生阻塞的效果。啊,大家看着。啊,我有一个这样的方法吗?对吧,来说一下吧,这个里面有我们的一个like。这里面那就说还有一个方法叫like的方法,Next的方法呢,叫什么取出,呃,一个合适的是Mac对象,但是他不一定马上返回吧,不一定,好了,那下面来看一下这里面的这一句话,非常的关键,我就不穷完我就完了这个句话。我跟大家说一下啊,那个他呢,是去通过一个本地的方法,本地方法,本地方法它来干嘛了,这个地方啊,呃,他会去,嗯叫什么来着,叫叫叫叫叫。
05:09
我去like的,相当于我去唤醒他,唤醒他一下啊。哎,这个这一个呢,啊说一下吧,它会处于等待状态,处于会导致等地方啊,会导致可能处于等待。嗯,等等待状态,但是有一个是如果我们这里面用的微小会出现什么效果。首先你得看我们这些方法是在哪个线程执行呢?主线上执行的都是在主线,因为我们看的麦方法是不是要在主线执行,这些方法通通都在主线执行的,那这里面就很严重啊,如果我这个里面处于了等待状态。那会说什么是不是主线程主塞的呀,但是它这种方式,它是不是用底层的方式做的呀,之所以用底层的方式做,是它有一个什么效果呢?虽然处于等待状态,但是不会什么阻塞主线程,就是别的地方是不是还可以响应用户的操作呀,啊OK,好,但他如果啊有消息一旦出来了怎么办呢。
06:27
他是不是要去找到一个合适的。啊,找到大家看啊,他会去找,一旦一旦有消息可以取的话,他就会醒来,他就不会处于等待的状态了,啊来下面做什么事情去这一片。干什么事啊?什么小一,什么message点问,这是做什么呀?下面是不是要根据当前的时间去取一个合适的message啊,对不对,取出来以后是不是得返回呀?啊,最终最终你看它这里面是不是有一个要返回值啊啊,最终是需要去把这个Mac给他。
07:09
是返回啊,在这里面啊,就需要去给他返回来写一下,就在这我就代码就不写了啊。来看在这。嗯,我们的那个如在上面啊。把它拿开一点。下面就是什么,我我直接就整一个吧,就整一段啊。整哪一段都不太合适,嗯,就是整这一段嘛。诶。我看一下。是哪段合适?Macy从哪来的?Message message message不等于空啊,这个里面。来吧,啊,就等一下,它在这里面呢,有两个重要的两句话,一个是它,再一个呢就是return吧,中间我就不再去看了啊,接下来就没意思。
08:09
这个是不是相当于从消息这个这个消息队列从那里面拿出一个呀,啊,它是不是只限第一个。对不对,第一个是最是要拿出也拿出第一个吧,嗯,就是这样的啊。嗯。这是什么呢?相当于是什么取出消息队列中的第一个消息将它,什么是返回啊?嗯,就这样一句话,但是这一句话并不会一定马上返回吧,跟大家说一下,取出一个合适的对象。大家看到。这个地方啊,可能什么不会立即返回对吧?嗯,好了,那我们这里面假如已经到了下一行了,以后出现了什么状况说明什么。
09:11
说明我是不是拿到消息了,到了这一下面一行。对吧,那我们就回到这里来,大家看到什么意思,就这一行到了一百二十五行,说明我们拿到消息,这是个容错处理,知道吧,按正常来说一定可能,要不就没拿到,要不就什么,要不他一直就没返回吧,既然返回了,是不是就应该拿到他这里面做的是容错数点啊,下面我们来看一下。看这一个,这句话也挺有意思,这一句。什么意思,干嘛去?叫Macy他的是谁,什么类什么类型handle吧,是不是调用handle了去干嘛去是是去分发消息啊,去分发消息能看到吧,那分发消息我们现在就看他怎么个分发法对不对,是不是过去啊,但是点不过去啊,点不过去了没关系。
10:17
哎,Handle搞错了。找一下。来就这句话,这句话我们得详细的说一下,它这个挺有意思啊。来。又回到我们的handle了,有一这个吧,好大家看一下啊,就这就最后这一点了,差不多了,如果把这个搞懂了,后面就没什么了。呃,这个我们来看一下,他也不能隔死,不能不能退格,真让人操蛋。好,先这样吧,大家看分发消息,首先它是判断ma.call back,如果它不等于空,你说他让谁去做?
11:08
Message,看message是message自己可以处理啊,这句话什么意思呢?跟大家简单的说一下,如果消息自己可以处理。自己可以处理自己,那就让谁做,让谁来处理,是对让消息自己处理。是吧,这不就是让他去自己处理了吗?大家看他不这句话吗?你看这句话在干嘛啊,走。Message点什么call back点那说明是不是调用message内部的call back去执行的呀,处理的,那处理完了以后大家看啊诶。看了。嗯,那就结束了吧。没了吧,没了就结束了,还会不会掉,我们还能买血,不会,但是1万我们不这么多啊,做的少,至少说下面一个,这什么意思?
12:12
这是谁的破败?哪个是不是handle了?诶,下面他说handle了,如果handle破败不得空,那我就叫handle了,什么这个阔白的。是不是还能买地方法诶,这个地方还有意思,它还有什么,是不是还有一个不恶心的返回值啊,这里面说的什么意思呢?来说一下,简单说一下啊,大家说什么意思?如果handle了,呃,对象中有什么啊,回调监听器吧,酷派回调吗?监听器调用什么?是不是回调监听器或者回调器的回调器来处理吧,来处理消息,但他这个处理是不是有一个有个波值啊,如果不为柱就什么。
13:12
就结束了,那微博呢。是不是还继续啊,继续谁调用是不是还能买几万万,这个时候就让谁去处呢?是不是让handler的是不是handle message方法来处理啊方法来处理,而我们重写的是不是就这个方法,那真正掉的是handle的内部的还是我们的?是我们的,这叫什么语法呀?啊,多肽呀。就他调用写代码的时候,是不是写的是负类的,然后我们真正执行的是什么子类的,这就是多肽,也就是说在这里面实际上是有三种情况,但是我们基本上用第三种。
14:06
啊,第一种和第二种都本身默认是空的,空的是不是进不来呀?啊进不来就进我们这里了。但是呢,大家如果能知道这些,能跟别人侃,那基本上就。你你你进那公司也差不多了啊啊啊,就是这一个啊,那到此为止,这一个分发实际上是包含了处理吧。对不对,分发并处理啊,这个地方我也就是说我们这个地方分发。并什么呢?处理消息好,后面就没什么了,就这一句话。什么意思?啊,对,回收。就这一句话啊,叫回收利用message,好,我们简单的来看一下这个方法就OK啊,咱的事情就结束了,时间也挺长了。
15:10
看一下这一个第一句话什么意思。是不是肯定呀,肯定要干啥呀,咔咔咔一顿逮零得空。是把内部的数据给他干掉啊,啊把内部数据给他干掉,那你不能缓存一些也带数据的呀,对不对,好嗯。大家来看,你说这是在干什么事啊?数据清理以后放到哪个里面去,是不是那个消息室里面呢?对很好啊。好了,到此为止呢,我们就把这四个都跟大家说了一下,Message handle message you和loop。嗯。
16:00
啊,有点心很累是吧,掉头发了,你看我的形象你就知道了,我就是就是思考的太多啊。
我来说两句