00:00
行,这个讲这样几个事儿哈,呃,第一个呢,就是咱们每天的中午也分享哈,分享的这不是项目讲完了,然后每个组也都说到了,然后还剩下一点内容,嗯,然后把剩下这点内容呢,简单给大家来说一下啊,稍微串一串,就是前面这东西呢,学完以后呢,好多都忘了,这个得稍微捋顺一下,你看哪些呢,是这个重点的啊。啊,先打开,哎,还剩下这样的几个内容啊,安卓的基本质呢,这块就不说了,I呢我们已经讲了,Service呢也说了,呃,然后呢,包括呢,呃,Container provider,我们讲这个数据存储的时候呢,实际上把它也给讲了啊,In Internet这块这都提到了啊,呃,然后呢,我们这里边呢,再提一下这个broadcast receiver,呃,这也算是我们安卓中的一个组件啊。首先呢,关于这个broadcast receiver呢,它的一个基本的理解啊,它呢涉及到两端,呃,一个呢叫receiver端啊,就是接收端啊,另外一个呢,叫发送端。所以这是两端的一个行为啊,所以说一开始这个broadcast receiver呢,我们说它就定义为系统级的一个消息处理,或者叫这个数据的一个处理机制的啊,通信就是一开始这个broadcat receiver跟这个呃,Broadcast它两个呢,基本上就是两个应用。
01:16
啊就定位为直接,就是应用之间的,不像我们说服务啊,包括it啊,它呢直接呢就可以是哎,这个应用内的一个服务啊,就是本地的一个服务,或者你IP呢,也可以启动自己这个应用的it啊,而这个广播接收器的话呢,通常情况下就是两个不同的应用了啊,当然我们也可以发送本地的广播啊,这也是可以的啊啊就是后来呢,又创立一个叫local broadcaster receive啊就是我们可以呃,就接受本地广,就是我应用内部自己发广播自己接,呃正常情况下呢,我们发广播的话呢,直接发出去,呃,在整个系统层面啊,看看用哪些action呢,是匹配的,都可以接收到。而且一般广播你还没办法去拦截。啊,那后边呢,我们讲到这个即时通讯的时候呢,会收到一个,我们也可以发送本地的一个广播啊,就只让自己应用上去接收。
02:07
啊,然后呢,这里边要求这个发送端和接收端的这个action呢,这是一样的啊,这个也很好理解啊,哎,我们当时讲这个广播接收器或者发广播的时候呢,就是以这个电台和这个收音机啊举例子来说明的啊啊你这都得在同一个频道上才可以了。啊,距离API,那就是下面我们具体用的时候啊,呃,这里边呢,我们涉及到这个broadcat receiver,它是一个。呃,组建。啊,它是一个组件,那就意味着他能满足组件的这些特点,相应的呢,该去继承就继承啊,该重写就重写啊,关于这个broke receive这块呢,我们倒没有特意的去说它的生命周期如何如何,诶主要呢,就提到了这一个方法啊,Receive这个方法,哎,在这里边呢,你去处理一下,接触到这广播以后,你想干什么。啊,这呢,我们说到了两种注册方式。哎,这也是我们说的四大组件当中最特别的一个。
03:01
就从这个角度上来看啊,哎,特别就特别在那,它可以有两种注册的方式。啊,这两种注册方式的话呢,我们当时在这个PPT里边呢,还专门写了他俩的这个区别。是吧,哎,专门写这个区里的区别啊呃,这种叫静态注册,稍以我们回忆一下啊,静态注册的话呢,就是它直接呢,写在这个是不是功能清单文件里了。啊,那他这个注册以后的特点是什么呢。嗯,对,跟我们整个这个应用的这个生命周期都是同步的是吧,这个应用而且还不同于进程嘛。是吧?比如我一开机,我一开机的时候呢,这个应用呢,比如说也没有自启动,其实进程也没开启,但是的话呢,如果我就发了一个广播,比如说是一个呃来短信那个广播,呃,那你这里边呢,恰好也有这样的一个广播,呃来短信广播一个接收器哈,这个时一下子就记起来了啊,就是只要你当前应用安装了。
04:04
这是对于我们静态注册来讲哈,只要你安装了到你整个这个应用呢,被卸载掉,整个这个过程当中,呃,一旦呢,呃,我这里边注册了一个接收器,而且action跟你这边发的一样,哎,你就能够把我给记算。而且这这是第一个点啊,就是整个你可以理解成这个注册的周期是非常非常长的,基本上也不可能比它再长了啊,从你有这个应用到你这个应用都被卸了,这个过程当中都认为啊,他已经被注册了。啊,那这个注册跟对象的创建和死亡是两回事。啊,你不要理解为说,诶这个注册这个时间这么长,那是不是这个对象也这么长呢。刚才已经说了,进程都还没有呢,进程没有,那你谈何去给他分配内存呢?谈何去有对象呢?对吧,嗯,所以说这个对象的创建可没有这么长的时间啊,嗯,那对象的创建呢,就是随着你这边发一个。
05:00
你这边发一个这边这个静态注册的波尔卡receive,是不是就当即去造一下啊。哎,当你造完以后呢,紧接着就调它的on方法,那R法一调完。马上就死了吧。就是这样啊,那如果你要又发了一这个,又发了一个,那这块呢,他就再去造个对象,哎,掉完昂瑞西呢,又死了。嗯,所以说他这个生命周期呢,实际上是非常的短的啊啊,这个不卡receive这个对象的生命周期很短,只是说呢,他注册的周期是非常非常长的。啊,那这个呢,你还跟那个进程的加载跟进程的这个,呃,被被从这个内存中给它销毁,还还不太一样啊,我们当时讲过这个过程里边指的是不是那个application啊。是吧,呃说它呢,是随着你这个,呃进程就是相当于你当前的应用呢,被加载到进程里了,跟你这个进程呢,被整个移除掉,这个呢,哎是你这个进程的一个周期,在这个周期里边,我们这个application的对象是都存在的。
06:03
啊,就是这个呢,别搞混了啊,嗯,然后的话呢,这里边儿还提到一个叫动态注册。呃,动态注册的话呢,是就我们相当于是写代码了是吧,是通过谁调的呀。嗯,其实是相当于是我们通过contest调的。Shift t一下,我们写着这个contest。嗯,然后呢,CO一下,那我们就叫register。呃,Register,那这呢,我们可以去注册一下,呃,这个接收器啊,注册接收器的话呢,你得指明它的这个action,所以呢,需要填一个in Internet filter。啊,然后呢,以及解注册啊,都是由我们这个contest呢去完成的啊呃注册解注册,呃,这个时候呢,我们就提到了,对于动态注册来讲,它的注册的时机。啊,以及呃,这个解注册的时机正好,这个过程中是不是就正好跟我们这个对象的创建跟消亡算是吻合的呀。
07:02
呃,因为我们注册的时候呢,你就需要的对象,所以我就造了对象啊,你这个消亡的时候呢,我们顺便就把这个对象呢,呃,引用制成个闹,哎,我们可以看成这个生命周期跟它这个注册呢是吻合的。啊,那我这里边呢,比如说我来了一个,呃,发送了一个广播哈,正好你这块是一个接收的,哎,同时我之前已经开启了,那这块呢,你肯定就会调查on修方法啊,那执行完on方法,这个对象会消亡吗?不会啊,必须呢,你显示的去解注册才可以了啊,这呢是它的一个特点啊,那很显然,我们说你这个动态注册的这个广播接收器呢,就是我打开了它就起作用,关闭了它就不起作用。或者叫解注册了,它就不起作用啊,那就意味着呢,就比较灵活啊,不像这个静态注册这个周期还是很长的啊,所以说这个呢,我们就服务于服务于某一个activity或某一个service啊,对于我们这个动态注册来讲啊,啊这个区别呢,大家搞清楚啊。啊,这个呢,主要就是回头,如果我们需要写这个receiver的话呢,你看一下呃,到底有写什么静态的呀,呃还是写什么动态的呀,哎,按照我们刚才说的这个,你稍微思考一下啊呃再一点呢,就是我们说发送广播,呃发送广播的话呢,主要关注于一个呢叫一般广播或者叫常规广播,一个呢叫有序广播啊呃,这个特点呢,当然就比较清楚了啊常规广播呢,就是你可以理解成是一个散状图的形式啊,往外去发,只要呢,有对应的action的这个接收器都可以接收到啊,你这个接收到,你想拦截你也拦不了人家。
08:29
啊,而这有序呢,就是一个按照一条线啊,你可以理解成异味的啊,这个前一个接收完以后呢,后一个再接收啊,而且前一个接收完以后,是不是还可以aboard呀。哎,对,可以做一个拦截啊,中断,一旦中断了,后边这个就没戏了。呃,所以像系统的这个短信的话呢,我们就可以正好系统短信就是一个有序广播,诶我们就可以把我们的这个广播接收器呢,就优先你调到最高,然后呢,接收到以后呢,再让他拿。呃,这样呢,就不会再去向下传递了啊,哎,主体呢,就这样的特点,下面就是如何去发送啊,就send board broadca broadcat send broadcat。
09:09
所以这个方法其实特别简单哈,嗯,其实安卓里边呢,我们看到这个方法呢,比这个Java那时候讲的时候方法要多好多了啊,但其实这个方法呢,你会发现其实都挺有规律的。那当然,这前提是是你英语别太差了是吧,你说有规律是有规律,但是单词都不认识那也白扯了,嗯,你好歹应该差不多熟悉一点哈,这样的话发送广播,发送有序的广播啊,直接你这个翻译过来就知道这个方法怎么写了啊。行,这个呢,主要就是这个我们说的这个广播计收器哈,对于这个系统的广播的话呢,呃,我们呃有可能会写开机广播就一开机,我这个呢,就自动的去让它进行一个什么操作啊,开机自修等等啊啊开机呢还可以呢,设置一个收到短信啊,锁屏开屏应用卸载啊,这呢就是一些这个我们可能会用到的哈,接收系统广播的。
10:01
这个接收器啊,就是这是系统的广播,我们呢,去设置这个接接收器就可以了。啊,这块呢,其实用的呃,也相对比较有限啊,这是我们说的这个叫广播接收器。啊,这个说完以后呢,相当于这几个组件呢,我们就都给大家介绍到了啊。
我来说两句