00:00
行啊,哎,今天呢,是我们这个中午分享的,相当于第一次了啊,呃,两个同学讲的挺好的,就是把这两个内容综合一下,这就是我们讲it的时候呢,说到的这些内容,嗯,稍微遗憾一点,就是没有在外边再去延伸一些啊,其实真正在这个面试当中呢,关于S考察的时候呢,有时候还不少呢啊,尤其是关于HTP的生命周期。嗯,这块考察的时候呢,还是比较多的,然后呢,这块呢,我也写了个DEMO啊,然后呢,通过这个DEMO我们说一下it重点的就是生命周期这块这个内容。嗯,我写个写个这个吧,也简单的回顾一下啊,刚才我们提到的关于FT的一个使用啊,什么维。好了啊。HT的一个使用。行,明天的话呢,该讲是VI了是吧,VI生命周期哈,呃,一方面呢,就是把我们讲的这个内容说一说,另外一方面呢,在网上再查一查啊。
01:02
啊,把这个打开。这开个tit都这妈来。关了再开一下看看。干嘛呀?他在想什么呀,他在。嗯。嗯,IKT的一个使用。哎,就是大家呢,就是诶前面讲的后边你不能扔了哈,然后开发里边我们常用的是什么样子的,就是真正面试里边问到这些技术点的时候呢,就一方面呢,你单独说一说这个机有点,另外呢,就是你在真正我们做了好多项目啊,那项目当中怎么去用的,常见的一些问题是什么,那这些呢,也跟人家表述一下,这样能感受到你真正是有这样相应的一些经验在里面啊,这个呢,也是企业比较看重的一个点啊,那关于这个activity的话呢,刚才也提到了,首先呢,呃,先一句话呢,去战述一下这样的一个组件啊。
02:06
哎,关于它这个概述啊,刚才呢,其实也已经提到了哈,就是它是一个提供能够与用户交互的一个界面啊,提供能够。呃,用户交互的一个界面啊,这里边呢,提到了两个事情,第一个呢,是他关联一个界面啊,这是第一个事情,然后呢,诶能够与用户交互。啊,这是两个事情哈,那界面的话呢,这也是我们提到说四大组件当中只有这一个activity是可以根据,呃,是可以提供一个界面的。啊,所以这里边呢,就是跟它延伸出来的第二点呢,就关于组件啊,其实刚才也讲到了哈,哎,组件的话呢,我们说有相应的一些特点。啊,那组件的特点,我们一般都说有哪几个特点啊。哎,对四个哈,嗯,这个咱们当时考试的时候还考了哈,哎,第一个呢,就是必须呢,要继承啊,或是继承呃负类啊,或者是实现接口。
03:04
哎,这是第一个点啊,第二个点呢。哎,对,是不是一定要注册呀,诶不管呢,你是我们安卓端的,呃,在工能清代文件中还是在服务器端的,呃,我们说的这个web点叉包当中啊等等都是需要去注册这些组件的啊好第三个点。哎,对象呢,是系统帮我们自动创建的。啊,系统创建的。嗯,在网安卓当中呢,这就是activity manager啊创建的,然后在我们后台的话呢,就是在这个他CAD当中,他CAD创建的啊,然后第四个点。哎,就是涉及到有生命周期方法对吧,哎,生命周期哎方法的一个自动调用。哎,这样的啊,就是我们呢去继承这个负类或实现这个接口,通常的话呢,这个负类呢,里边是包含抽样方法的,呃,接口里边呢,当然只有抽样方法了啊,我们需要呢去重写这个方法。
04:03
啊,然后这些方法的话呢,我们说呃,因为呢,你这个对象呢,是系统帮你造的,你也不知道他这个名叫什么,所以这些方法一定不会是我们自己去调调的啊,所以这些方法一定是系统帮我们调的,那调的是我们需要关注的,就是哪些生命周期方法需要我们去重启。哎,那这个方法什么时候被调,这个是我们所关心的问题啊,像I里边呢,我们提到有七个生命周期方法啊,这是七个方法的话呢,我们哪些呃是长重写的哪些呢,不常重写,当然要,如果重写的话呢,什么样的方法要写到哪里边。呃,一会儿我们重点来说一下这个问题。啊,这是说关于这个组件的这个特点啊呃,组件这个特点特点说完以后呢,我们就提到说有这个四大组件了,说只有这个activity。啊,四大组件当中,它呢可以提供一个用户界面,另外三个都不行啊,另外呢,还可以用户交互。啊,这就是说我们可以去有一些相应的事件了啊,这回头我们大家分享这个事件一致的时候啊,那个到move up呀,以及相应的一些监听的时候呢,哎,就体现为能够与用户交互啊这样一个事情,好,这个完了以后呢,下边就是呃提到了说如何呢去创建一个activityt。
05:15
啊,或者叫如何声明一个啊。来看PPT,哎,那如何声明,其实就参照于我们这个组件的特点。哎,刚才也讲到了啊,说如何就去证明呢?呃,继承一个activity。啊,重写这个on create的方法。啊,然后呢,得需要功能清代文件中注册一下,那回头呢,你启动的时候呢,诶自动这个对象呢,就创建了,那这里边少一个就是你。怎么着?是不是那个重建方法里边呢,得去关联一个布局文件啊。哎,这个布局文件呢,需要我们自己呢,再去创建一下啊,这个叉包格式这个布局文件啊,这个呢,就是针对于这个组件特点啊,说如何去声明一个activity。
06:00
啊,真正我们在开发当中用的时候呢,一般我们就不会直接去造一个class的方式了啊,而是呢,直接去扭一个这个itp啊,所以这几块呢,就都帮我们自动去造了啊诶布计文件呢也帮我们提供好了,然后呢方法也写好了,这个set view也都嗯提供好了,所以呢,你诶诶你都不用再做太多事情,但是你要知道呢,有这样几个事情要做啊啊那下一个的话呢,我们涉及到就是如何去启动一个it t啊。我创建了it体,当然前提呢,这个it体不是我们的这个,相当于这个所谓的叫may it体了哈。指的呢,不是这个了。啊,除了这个之外啊,这个呢,是我们一点击这个应用图标呢,首先启动的这个it t,除了这个之外剩下的it。哎,我们说如何去启动,刚才也讲到了,说有两种启动方式。第一种叫呃,Start activity,呃,里边呢,需要传一个inent,就它一个就行了,呃,然后第二个点。
07:08
他叫大大。嗯,Activity for result,这里边需要传两个参数是吧,一个呢,是int型的。哎,请求码request code,还有一个intent是吧。好,这是我们说的这两个啊,这两个里边呢,主要第二个啊,第二块呢,光他还不行。啊,这是我们说的,比如说我们这个相当于是叫ACTIVITY1啊。啊,相当于我在这个一里边呢,我想启动这个二,那相应的你在这个二里边。对,这个二里边我们写这个叫什么呀。A result。在这result里边需要写什么?In的型的一个,呃,Response。Result吧?
08:00
Result code是吧,还有一个。啊,这样两个啊,注意这时候呢,IT2,你光说set result其实还不行啊,啊,还得再配上一个finish才行。嗯,言外之意呢,就是如果你仅仅是调一下s result这个没有调当前it t2的一个finish操作,其实它还回不去。啊,不光是你看不着啊,你说是不是回去了,只是我这个二挡着看不着了,嗯,不是这个呢,也没有回去,这个我们一会儿可以测试一下,你看一下,如果我要是不写分类式,哎,你又回到你看这个又按说就该回到一了哈,一的那些生命这个方法你看掉不掉。哎,你就知道了啊,然后呢,再回到一的时候。On,嗯,I an activity result,哎,这个参数就丰富一些了,是吧?哎,就是你有一个请求码。
09:00
啊,有一个结果码。啊,有一个intent,哎这样的三部分,好这个呢,就是我们说呃两种启动方式啊,那基于这个启动方式的话呢,呃,刚才其实也讲到了,就是我们的第五个点,哎,关于这个intent的一个使用。嗯,In的那个使用这块呢,就首先呢,明确一个问题,首先它不是组件。啊,不是组件,就是因为呢,它不满足组件的这个特征。嗯,组件呢,是需要注册的啊,需要继承的,你这儿呢,我们从来没有说让他去继承于谁啊,它就是直接new的啊,所以他根本不满足组件的特征,只是说呢,我们比较常用的看到的哈,哎,所以我们呃介绍这个Internet Internet的时候呢,我们一般怎么说呀。嗯,提供不同组件之间进行通信的一个系使是吧?啊或者你翻译的话呢,它叫一个意图啊,就是提供不同。呃,组建呃通信的一个,呃信使啊,首先它是一个信使,所以呢,它能够告诉我们要去哪。
10:09
啊,这呢是我们提到这个它的第一个非常重要的作用啊,指定我们要去哪。啊,那这里边呢,就提到了这个,就在这写一下这个小泥巴。啊,要去哪,这是他说的第一个问题啊,那这个时候呢,我们就其实就分成两种啊,一种呢,叫做显示意图啊,一种叫隐示意图。这个12不对啊。对吧。显示一图,是不是就明确知道我要去哪一个it啊?哎,那影视呢?是不是我们指明的是一个词缀类型的一个action,对,就是凡是呢你呃,其他的这个,比如说是activity啊,配了同样的activity action的,那我是都有可能要去的,所以就会出现了,比如我们点击一个,就假设是个分享一样哈,是不是就会出来好几个都满足的,那就让我们选其中一个呀。
11:05
哎,就是因为它这个action呢是一样的啊,哎,这是一个考虑的角度,就是一个是非常明确的去哪,另外一个呢是不明确。啊,具体的用这种方式啊,再一个呢,就是讲到的啊,说这个呢,通常是在同一个应用当中。哎,我们才能用它这个呢,一般都是不同应用之间,也就不同进程之间啊,因为你要是不在一个进程里边哈,这是两个进程,我们在这里边你想用显示还用不了,因为你也看不着人家啊,因为显示意图其实主要呢,就是体现它这个构造器哈,这个构造器里边呢,一方面呢,是需要填写一个对象是吧,一般就是我们当前这个itt呗,哎,另外呢,就是你要去哪。来指明人家这个class啊,那你都不在一个进程里边,根本就看不到这个结构啊,影视意图呢,就直接呢这个in里边。哎,就填一个这个spring的一个action就可以了。
12:00
好,这是我们说的他的第一个事情啊,然后第二个事情呢,就是说嗯,能带数据吗。哎,可以是吧,哎,这就是我们说这个Internet Internet的第二个作用啊,可以携带数据啊,那携带数据我们通常有什么样的方法可以去做呀。是不是put这个extra。哎,这个X里边呢,我们说呃,其实就相当于里边是这个减值,对的啊,K呢是string类型的,然后这个值的话呢,是不确定啊,哎,很多种类型都可以,像基本数据类型,呃,B类型final里面其实也是个map啊呃,或者说这个S啊,什么possible啊是吧,这两个接口时间类也都可以啊,那这个呢叫put了,那相对应的你就有。是不是get get呢,就是你叉叉叉的一个。啊,这里边写明这个K啊,这就可以获取啊,这是我们见到的一种携带数据的方式,还有。
13:02
Data。哎,这个里边是什么类型。是不是U啊,哎,这个UI啊,这个呢,你叫set,那对应那个就是get。啊定量就行,嗯,这里边的UI呢,需要稍微注意一下啊,这UI呢,一般我们,呃,你获取个UI都是通过UI点。是不是pass一下这里边,你像我们当时这个写这个打电话的这个操作的时候呢,是不是写了一个叫T。冒号,然后呢,后边加上一个具体的一个号码是吧。哎,这个UI呢,哎,你跟谁要给他对比一下呢,哎,URL。UR跟URL什么关系啊?就这两个,你觉得谁的范围更大一些,诶,UI的范围更大一些啊,这个URL的话呢,就是我们叫统一资源定位符,对应的就是因特网上的一个资源了。
14:00
啊,就比如我们这里边呢,你访问服务器这块呢,呃,有很多这个某一个具体的sol啊,或者你访问具体的这样一个,呃,APK文件或者这个Jason文件,这都是属于对应的一个资源的啊呃,这就是一个ul,是对应网上的一个资源,那它呢,是不是我们看到的里边就是HTTP这样开头的呀。这样的啊,他这是这样的一个前缀,而我们这个UI的话呢,它就更丰富一些。哎,我们打电话用的是他,哎,发短信又是另外一个。呃,以及呢,我们在写谁的时候呢?哎,对啊,我们在写这个,呃,Content,通过content result去访问content provider的时候,哎,我们当时是不是用的这个双引号就是叫content了。对吧?呃,然后后边你BCD啊几部分啊,就是这里边呢又变了啊,包括呢,我们如果你是本地的一个资源,哎,我们其实还是这个范开头的。
15:02
嗯,像这些的话呢,你都可以看成是不同的UI。啊,URL呢,就是一个网络上的资源啊,所以它是HTP,它就比较单一了啊,这是他俩之间的一个关系啊,这个范围小,这个范围更大一些。哎,需要注意的呢,就是这个Internet Internet里边这个操作呢,你是可以放很多的数据的,哎,放了一个呃,String的,又放了一个的,或者放俩T的都可以,都没问题,但是这个data的话呢,它叫get set。那其实它就这一个变量啊,那就意味着我们写了一个S的方法了,我又写个S贝塔方法,那其实把刚才那个就给覆盖掉了。对,它就只有一个变量叫贝塔啊,你不可以往里边掉很多次了。那这个呢,是可以调很多次的,那这呢,顺便我们就相当于把这个Internet呢,也跟大家说一下啊,这要清楚,嗯。好,嗯,这个完了以后,我们再回归到这个ftd层面啊,如何去启动,说了下边一个什么问题。
16:01
哎,启动模式,哎,或者先说这个叫任务站的结构是吧。任务。那这样的一个结构。哎,这里面就提到我们说这个it呢,都是在这个站里边去保存的啊,就好比是我们在上午讲到的时候呢,我们自己定义了一个站结构。啊是一样的啊,这还有下来个同学们说这个不太理解的,这个这个其实没什么再额外要说的啊,后边我们用的时候呢,你就看到了啊,造它的这个目的呢,就是为了方便我们去使用这个IP系统的话呢,自动呢会提供一个任务站机构。啊,但是我们呢,没法直接呢,去调人家这个系统系统的这个站了啊,他没有给你对外暴露自动去维护了,然后的话呢,我们自己也定义这个站。呃,我们自己的里边就是它系统帮我们造一个,那我就往这里边,我也添加一个,你再造个我也添加一个,就是放在我们自己这个定义的这个站里边以后呢,诶,我们可以方便的去删除啊,比如我这是个一,我这是个五啊234啊五啊,这是第六个了。
17:05
我现在呢,我在这个第六个这块,我想把这个345都删掉,这个你就可以非常方便的调自己的方法,你想删谁想加谁哎都可以啊呃,你要是系统这个你是不可以想调就调的。啊,这是我们造它的一个意义啊,另外的话呢,在这里边,在这里边的话呢,你看我们写的时候删除啊,要调这个也要调finish的话呢,是把它,呃,就相当于是销毁了啊,那系统的那个站里边,就他在那个站里边就给移除掉了,那我们自己这个呢,没有,那我们还得把它给加上,所以这两个都得写上啊。行,这是我们说的这个任务站的一个结构啊,就是先进后出的一个结构。啊,先进后出的结构啊。好,那下一个问题呢,就是我们提到这个叫launch之木的,哎,启动模式啊,有四种启动模式。
18:00
啊,第一种就是比较标准的模式。呃,Stand模式,那一般情况下呢,我们都是用的stand模式,也就我们所说的这个默认情况啊,那第二种情况呢,叫single。呃,先single top吧,是吧,那single top啊,那single top这样的一种格式的话呢,我们一般什么时候会用啊。我先说它的意思,意思就是你在顶端了就不造了是吧,不在顶端的时候呢。酒糟,嗯,那什么时候情境下会用呢?哎,比如说我们这个界面里边只有一个button啊,比如我们一点击的时候呢,它需要执行一个相对比较耗时一个操作,呃,一点击它需要呢,去加载一些信息,然后呢,再给我们呈现一个新的activity,中间呢这个时间稍微慢一点。啊,那这种情况下,如果我们点击启动新代尔T的时候,我们没这个,这个相当于。嗯,相当于谁用呢?我们通过它去启动它让他去用啊,他用一个single top,如果你要没用的话呢,那就是standard。
19:07
那用户有可能再点一下,发现你这个加载有点慢,它没出来,没出来的时候用户觉得,诶是不是我没点上,他就再点了一下,这下还没出来,然后就开始。等等。点了三下是吧,那这一下是不是导致就有可能创建很多个T啊,那这个时候呢,就可能会报一个这个AR的一个错误啊。哎,相当于是not response就是没有响应了啊,系统没有响应就就挂了,就说白了啊,那这个时候呢,我们就可以把这个嗯,AR这个activityt声明为一个single top。啊,此时用户点了一下,其实这时候还没有加载出来呢哈,其实这个对象呢,已经创建了啊,那这时候用户再去点了好多下,并没有再帮我们去创建这些。呃,因为你已经是在里边站顶了。能理解吧,哎,这是叫single top啊,然后还有呢,叫single,哎,Task啊,哎,就是整个在占空间当中只有一个。
20:07
嗯,这个呢,就是我们经常见到的,就比如说这是一个一这边有好几个,哎,最后有一个。2345啊,这是第六个啊嗯,当我呢,通过这个六再去大一的时候。哎,大一这个时候我们把这个一呢声明为single task。嗯,一点击我想start一下一,那其实做的事呢,就是把这些呢都移除掉啊,而不是在我们这呢,在创建一个。啊,这种情况呢,就我们比如刚才上午举到的这个例子啊,呃,我这时候呢,就是呃,注册啊,通过一的时候呢,发现支付没有注册,然后用户开始这个注册,那注册到这儿的时候呢,我再去回到刚才这个界面啊,点一个返回也好,或者一个启动也好,啊这一点击它其实是将这些都销毁掉,漏出来的一,而不是呢,又帮我们重复造了一个一。那这时候一呢,就做一个single task。
21:01
啊,然后还有比如说这个四。四个,那叫single instance。嗯,Singlecent呢,是不是单独提供一个站是吧?哎,单独提供一个站,比如说像我们这个,呃,你通过不同的应用,我们去调打电话的这样的一个界面的时候啊,这个电话界面呢,我就提供这一个实例。哎,提供这一个实例去维护就可以了啊,那这叫single instance,这个建的一般不是特别多啊。啊,这个呢,我们说叫这个launch mode。
我来说两句