00:02
啊。我们要说另外一个概念叫什么呢?Intent。别说话了啊。Inna,他执译为意图。啊,什么是意图啦?也就是说你想去做什么事情,或者说你想去哪,这就是一个意图啊,意图呢,它是我们的activity service和broadcast receiver,以及说我们的活动服务和。这叫什么广播接收器?三个应用组件之间进行通信的一个。姓史。啊,譬如说我要在一个activity中去启动另外一个activity。啊,或者是启动一个服务。或者去发一个广播都需要去使用到。
01:03
Intent对象。意图呢?对象还有一个功能叫可以携带数据。大家就得想一想啊。好,我现在假设输入110,我点这一个拨打的按钮,实际上做了一个什么事情呢。是不是启动那个拨号的那个界面呢,通话的那个界面吧,那。他怎么知道要播什么呢?你是不是得把这个110这个号给带过去啊。啊,这是这样的一个事,大概。我拨打。它是不是显示110呢。是不是刚刚带过来的,这是一个被我启动了一个activity界面吧。嗯,有这样的一个事。好。这个地方要注意一个事情,有很多同学用易犯的一个错误。
02:02
Activity,它并不是我们Android中的四大应用组件之一。啊,Intend并不是啊,就是这一个是啊。好,下面。Intent它分为两种类型,一种是叫显示的。有一种叫什么呢,影视的。什么是显示呢?就是非常明确的。知道我到底要去哪,比如说我去北京对吧,啊,我去沈阳。这个非常明确吧,啊,非常明确的一个位置。明确指定目标组件的意图啊,如果说你用这样一个构造方法创建的意图对象,那它就是一个显示的意图。那什么是隐私意图呢?啊,你看我有可能,我有可能去北京是吧,我也有可能去去,假如去沈阳。
03:02
那我可不可以说,我本来假设我本来在武汉啊,啊本来在武汉啊,这两个位置呢,都是我可能去的位置。我说我去北方。这个可以吧。可以,但是到底是去北京呢,还是去沈阳是都可以啊。是吧,那你说是不是两个跟我匹配的。嗯,大家看啊。我给大家演示一个操作。大家有可能用过。在图库应用里面打开一个图片,它有一个概念叫分享。有吧?那。分享,它其实也是去启动activity,但是到底启动的是谁呢?哪个?他为什么会让我有多个选择了?是吧?
04:00
我分享是不是那个短信应用是不是能实现分享的效果啊,我们的QQ是不是也可以,其实这里面都是QQ的,QQ里面有四个界面。啊,四个X都能接收这样一个意图,按理说我这个分享的意图是显示的还是隐示的,隐视的对吧。我并没有明确指定。是短信吗?嗯,假设我没有安装QQ是个什么效果,他说。啊,你说你把QQ卸载掉一下就知道了,是吧,来试一下我们把QQ卸载一下啊大概。卸载掉了吧,好,卸载掉了以后,你看我再去点。
05:02
因为现在跟我这个意图匹配的就几个啊一个,那还让你选择,那那这个这个系统就设计的太。有问题了是吧。因为现在就一个选择了,所以说他就主动的过来了,对不对,这实际上是不是也是启动了我的这个短信编辑的界面呢,你说他带数据没有啊。是不是带了呀,你看这里面显示的数据不,他携带的数据吗。嗯。好,这个时候他用的就是影示意图。这并没有明确指定目标组件的意图。啊。用这样一种方式啊,它里面呢,要指定一个什么呢?Action行为,我是一个什么样的行为,刚才是不是个分享的行为啊,嗯,后面我们会专门去说他们啊,先大概的了解一下。好啦。下面就有一个问题啊。什么时候用显示意图,什么时候用隐示意图?
06:01
对吧。其实非常简单。如果说啊,目标组件。就是当前应用自己的。啊。那你就用什么呢。显示图。对吧,那如果说目标的界面activity是别的应用的。你用显示图是用不了的。你想啊,假设我这里面有两个应用对吧。我有ACTIVITY1啊,我有ACTIVITY2可以吧。我通过一,我想去启动activity,二。你说用显示能写吗?在用显示的时候,它要指定那个。a.class你觉得这样我能写别的应用的类名点class吗?能行吗?你一个应用能写另外一个应用的一一一些引用,另外应用那样引用不了。
07:04
根本就是没有办法应用的事情。那样就可能说了,那我为什么activity能够能够写呀。你们你不是已经引用好了吗,那个架包。对吧。啊,那有可能就输了,老师你把这个ACTIVITY2的加工。给他整过来呗,那还整过来,那还是两个项目吗?那不合并在一起了吗?对吧,这肯定是咱俩没有合并,咱俩是单独的两个项目吗?这个时候是不能去引用其他项目里面写的内容。所以此时只能用什么呢?影示意图啊,指定一个字符串。这个区别大家需要去知道啊。下面一个呢,这个现在可能难以理解一点叫啊什么呢,意图过滤器。
08:02
什么意思啊?刚才我们说过了,启动其他应用的组件是不是要用隐私一组啊?指定的是一个。Action。那他们是怎么匹配到的了?诶,这个地方就要说了,看到我舍弃掉。你要想。哎,他怎么就能跑到这一个短信应用的这一个界面activity里面来呀。他为什么没去别的界面呢?对不对。这个是不是要有一个匹配的一个过程啊。对吧,这是我们的短信界面的activity。啊啊,这是我们的图库应用的界面,它里面不有一个分享吗?分享是不是通过影视意图去启动一个界面呢。那谁来跟我的这个影视意图匹配呢?这个时候啊,就要涉及到。意图过滤器。
09:00
在意图过滤器里面有这样一个。一行东西。叫什么?Action action里面是不是指定一个内字符串呢?你说怎么匹配的?你看他这个我创建影视一图了,是不是指定了一个X。啊,这一个是在哪配置还记得不。功能清单文件里面是不是给某一个activity进行配置啊。看到了吧。哎,有人就说了,你说我们这一个为什么要配置成它呢。为什么要配置呀?我不会,能行吗?我们前面说过是不是不行啊。那为啥不行呢?大家想啊,在这个里面啊,我们的主机,我们是不是在launch里面,在桌面应用里面去操作某一个应用的图标吧。
10:02
是不是相当于通过桌面应用去启动当前应用的界面呢?是不是两个应用之间去启动界面,这时候用显示图还是用影视图啊影视那必须用影视呀。那如果是用隐示意图,它是不是指指指定了一个X型轴串呢?那你想那个目标的界面必须去配置什么?In filter啊,简单来说,譬如说两个应用,两个界面,我ACTIVITY1 activity2。啊,我呀要启动它。我们说过了,这种启动方式必须用什么隐示意图,隐示意图是不是只是指定了一个action呢?M是个字符串吧?那如何才能保证activity的R被启动呢?果保证。就是它是不是需要配置啊,它配置的时候需要去指定什么。
11:04
是不是里面配置一个什么。Action指定它的name属性,为什么?是不是这一个X型的值啊。这个时候他们才什么是不是匹配到了呀。这有,其实跟我们以前有点类似。以前我们譬如说假设我们的以前写的时候看到啊,我写一个是不是映射一个虚拟路径呢。还记得用一个什么样的标签来映射吗?UR。啊,Pattern对吧,Your pattern是不是指定了一个路径呢?啊,指定量路过斜杠啊什么什么。好。这是不是相当于指定的一个虚拟径,接着我的浏览器里面是不是要输入输入一个地址啊。那个地址要跟谁匹配啊?
12:00
是不是要跟他匹配才会最终去调用它呀。是不是一个匹配的过程?对吧。那我这里面也是一样的。啊。我是不是通过意图来去发一个请求啊。意图里面是包含的一个相当包含的一个路径的。Is action。Action的时候,那我们另外一边对面是不是要配置一个filter才行啊,先大致有一个理解啊。因为现在的暂时啊,用的不是特别多。有点类似于我们的UI。啊,如果说你的某一个activity想成为应用的主,Activity怎么做啊。是要配置这个固定的呀。这个也不需要太太背啊,你创建多了自然就会清楚了啊。好。
13:01
啊,这是说的是intent intent filter,我们呢。
我来说两句