00:00
好,这个完了以后的话呢,我们下边啊,接着往下来看,该这个零七了啊,这里边呢,涉及到这样的一些类0708,然后这里边儿这个零一啊零二,包括这个零三啊,这块的话呢,还马上跟我们这个页面的效果啊,还不太相关哈,这里边呢,我们提供了相关的一些呃,工具类。啊,这些工具类呢,提供完以后,供我们后边再设计这个页面的时候呢去使用,呃,到后边呢,我们再具体的来看一下这个,呃,Home frament,我们怎么提供它的布局啊,上面提供view page哎等等等等。啊,先来看一下这里边儿这些工具的一个使用啊,就里边有一些工具类,首先第一个。哎,这里边儿呢,我们提到一个叫my application啊,这个类这个呢,是我们自己定义的啊。嗯,我们知道呢,在系统里边呢,有一个类呢叫application。对吧,哎,我们呢,再去,嗯,创建一个工程的时候,在工程清单文件里面。
01:04
哎,我们看到了啊,IE这是我们说提供的一个标签了,哎,另外呢,还有一个标签叫application。啊,这样呢,也是系统就是当我们把这个程序运行起来以后,加载到进程里边啊,那么系统呢,也会就执行我们这个下载功能清单文件啊,哎,这儿呢,也对应的是某一个类。那就是叫大写的这个A开头的啊,Application这个类啊,这个类的对象呢,就会创建它对应的,其实就我们这里边这一项啊,里边呢,该有这样的一些属性就有了。啊,那我们这里边想做的事是什么呢?这个application呢,我们不想用系统来提供的,而是想用我们自己造的一个application。啊,那我们造它的意义在什么,看一下。说为什么要自己再去提供一个application类呢?啊,因为这个application类呢,它是随着你当前进程的一个加载,这个对象呢,就创建了。呃,然后当你这个进程销毁的时候呢,这个对象呢,才销毁掉。
02:03
那言外之意呢,这个类的生命周期是不是就特别长啊,啊,这个进程就是你这个应用呢,运行起来了,当你这个应用呢,最后整个从进程里,从那个内存里面给它销毁掉啊,生命周期很长,那在这个生命周期的过程当中,我们呢,可能会创建一些activity,那他们的生命周期可能是要短一些了。那我们这个application既然生命周期很长,那我呢,就可以在这个application里边呢,我就提供一些变量了,或者说就提供一些数据了。啊,这个数据呢,整个在这个生命周期过程当中都可以被调用。啊,那你如果在其中某一个环节造了一些activityt了,如果你这里边需要用到一些变量,你就用不着用的时候造了啊,因为你这个时候用完以后,这个里边可能还要用,那这里边还要用,那我们不妨呢,是不是把这些变量就抽取出来,放到你这个生命周期更长的这样一个容器里啊。对吧,哎,那你用的时候呢,直接从这里边拿就行。
03:01
啊,所以呢,这个activity就体现为是一个容器的这样一个概念啊,呃,包括呢,Activity或者说你其他像service等等啊呃,你数据呢,可以不用非得从这传了,我可以把这个数据呢,诶修改保存到这个application里边,Application呢再给你传到这个service里面。啊,它体现为就是一个容器的概念啊,所以我们这呢,可以将哎,我们在activity里边有的时候,比如我们写一些比如view.inflate。啊,需要写这个contest的时候呢,呃,像这些变量我们就在application里边呢,一开始就先造好。哎,方便呢,它后边就直接用就行啊。哎,这呢,我们可以提供啊,像这样contest呀,Handler呀,或者thread啊,这个想干什么,就是我们判断的,就是当前后边我们要用到哈,有一些操作呢,必须要在主线程当中去执行,我们看可以看到它真正在调用的时候呢,是不是在这个主线程。啊是主线程,那就是,哎不是的话呢,你再给他发到主线程啊,啊这呢,里边有相关的这样的一些描述。
04:07
啊,这个呢,我们就不具体来看了哈,诶,刚才你要了解为什么我们要去创建它,好下边呢,我们就来写一下。嗯,写的话呢,我们把它提供在我们这有个comment啊,下边我们创建一个类啊叫my en。哎,G乘于谁呀?哎,Application啊,那记成application以后呢,我们是不是也要重写on的方法呀?这边大家知道它的负类是什吗?哎,F2一下FFF4以下啊。That contest。哎,Cont呢,我们从讲安卓基础开始,第一天就用到这个,呃,类型的一个变量了,就我们写了个to ton第一个参数不就是它吗?哎,很多同学对它呢还不太了解啊,哎,这个我们讲到第三天以后啊,我们把这个contest专门来总结一下。
05:04
啊,这个contest呢,有三个典型的子类都谁啊?哎,这个activity是我们一上来就要用的是吧,Activity啊,第二个service。哎,里边两个组件呢,都是它的子类啊第三个。那就是那个application。啊啊,这呢,Application这块呢,其实也相当于是一个组件了啊,也是一个组件啊,系统呢也是帮我们自动造的,只不过我们不把它叫做安卓四大组件之一了啊哎,回头呢,我们总结一下application跟activity重点它俩有什么区别啊啊这里边的话呢,我们也要重写一个on create的方法,也是属于它这个组件生命周期的一个方法啊。呃,在这里边我们需要做一些初始化,就是刚才我们说的啊,我们需要呢,用到一些力量啊,在整个进程的,或者整个应用执行过程当中啊,我们生命就变量。
06:01
嗯,在。整个。呃,应用执行过程中。嗯,需要提供的这个啊,或者叫变量或者叫数据都可以啊。好,这呢,我们直接呢,通过这个类呢就可以调用了,所以我这写成public啊,嗯,然后public static的,嗯,这呢是一个string类型啊,不是像一个contest。嗯,这一个content这一个。Under。看这一个。PB还有。Static这呢,这个thread。啊,然后呢,叫may thread。这个得等一号啊。以及呃,Public static int类型的啊,May thread。
07:03
啊,这里边儿是什么意思,一个个来表示一下,第一个啊,这个整个我们这个应用执行过程当中啊,需要使用到的这个上下文对象啊。哎,我们把这个呢,就经常叫上下文。嗯,然后这个哈德软呢,就是整个应用你在执行过程当中,我们回头要用到hand德软,像我们刚才那会儿啊,发送了一个消息,那你就可以啊,需要用一个hand德,我就提前给你造好啊,需要使用的这个handle德ler啊消息的一个处理器。嗯,好在下边。哎,这个呢叫就是我们说的主线条啊,嗯,就是相当于我们去提供啊。这个主线程这个对象。啊,有同学困了啊。让精神,精神不行,就稍微站一会儿也行啊。嗯,你看到旁边那个同学困难,你适当的摸摸他是吧,精神了啊,嗯。
08:06
一般冬天你可能摸大腿的感受不出来是吧?这个摸展看你俩亲密程度了是吧?嗯,再下面这个啊,嗯,主线程的一个ID,这是什么。嗯,这个呢,就是回头我们判断一下这个主线程,比如说我们就刚才说到哈,就有一些操作呢,我们必须要在主线程当中去做的。哎,比如说是不是更新界面啊。哎,那我们后边呢,在一些代码当中,我们可能会写一些逻辑了啊,那写这些逻辑的话呢,就涉及到更新界面了,那我们就是就得看一下,说你这个操作这是不是在主线当中做的呀,哎,那我们就可以判断一下,哎,在这里边我们提供了一个ID,那你那块呢,我看看你的ID是多少,看这俩是不是一个啊是一个行,那就说明你这块操作呢,就已经是主线程了,那我们直接就更新界面。
09:01
那如果你这里边发现不是一样的,那就说明你这呢是在一个分线程里边,那我们就得把它把它发到主线程去做,所以这呢是我们后期要用的啊,诶我们提前呢就提供好,这就提供主线程对象的ID。啊这样啊行,那这节个的话呢,我们就需要在on create里边呢,做一个初始化啊初始化呢,就一个个来contest,首先呃,Contest我们这呢,给大家提供一下啊来这个我们就直接这四点叫get application contest。这个没掉过是吧,以前哎,这个呢,我们回头呢,就刚才说了啊,回头我们去总结一下contest这个方法,其实返回的呢,就是一个contest,只不过这个contest呢,其实就是我们的application。啊,它就是一个实例了,所以这个可能其实就是他,嗯。嗯,这是它,然后呢,他这哎我们直接扭一个啊。
10:00
这样,那下边这个may thread这个怎么着啊。哎,这种我们直接这样就行啊th.current threat哎,你这样就可以,这就要主线程了。那意味着什么呀?哎,意味着就是我把当前的线程就付给这个主线程,那说明它就是主线程,那言外之意就是实例化,我们这个application对象的线就是主线程啊。当前,Application。打对象。呃,的的现场极为。嗯,什么意思呢?就是呃,当我们运行这个进程的时候呢,系统就帮我们去创建这个类的对象啊,其实这个时候呢,都是在主线程当中帮我们创建的啊,那创建的时候呢,紧接着调了一个方法,也是在主线程调的,所以你当前这个线程就是主线程啊。啊,以及may thad一个ID啊,这个呢,我们就得这样写了啊,我们这一个enjoy.os点。
11:09
嗯,Process my t。这个有一个叫MY,你看一下啊。点MYTD也有,这个叫PID。啊,这个呢,就是当前的你这个process啊,当前这个进程啊,这个呢,就是当前的啊当前线程。那这呢,就是实例化当前培这个线程,这是我们这儿呢,直接就说啊,获取当前线程的ID。哎,当前线程ID,那其实我们这儿当前线程说了就是主线程,所以这就是主线程的一个ID啊。好,这样的话呢,我们就创建好了,那此时你创建好以后呢,这个类其实并没有被征。啊,那你实例化的时候,他凭啥就造你这个对象不是系统提供的呢?哎,所以需要在这个位置,那这要注意哈,很多同学这个位置经常忘,哎加一个name,哎,把我们这个MY呢放在这,那回头系统呢再去创建,呃,当你这个进程一加载创建application对象时,就是创建的这个对象。
12:11
啊,那此时呢,我们这个呢,就创建好了啊。来把这个我们填一下。
我来说两句