00:00
好,接下来呢,我们来处理处理一下这个全局监听联系人的变化啊,在做它之前呢,我们还是要先做一个准备工作,就是处理一下这个SP啊,YouTube是这个工具类啊,大家以前用过这个SP吧?啊,那么接下来呢,我们把它封装成一个工具类,以后再用的时候呢啊,可以拿过来直接用啊,非常方便。看下代码。建到这个YouTubeus啊,工具类这个包下面创建一个SP UUS usus。啊,那么这个工具类啊,啊,往往我们都给它封装成这个单立的,那单立的怎么封装呢?首先生成一个静态的构造方法。不让他去对象,接下来呢,通过静态方法创建一个实例啊,让他返回public static静态,然后呢,ASP UUS get。
01:03
Get,获取实例对象。那么获取磁量对象之前啊,我们要先创建一个它的实例对象P得是静态的,因为下面的方法是静态的。Static平台,RS in ins。等于你一个SP。然后呢,直接一个instance啊,当前这个实例,但是啊,你只是返成这返回了这一个P,但是呢,这个SP对象我们还没有获取到,那怎么获取到呢?嗯,通过上下文啊上下文那么这里呢啊以前呢,可以通过这个啊传进来一个三角文之后呢,拿到它。
02:01
点get。Preference啊,这样是获取啊,这样是可以的,但是呢,我们这是不要这样用,这样用呢,有这个内存啊泄露的风险,比如说你传进来一个activity对象,那么如果这里面做了一些耗时操作啊,那么它那个activity就不能正常退出啊,后面呢,我们会有这个内存运化的课给大家详细分析啊,这里面呢,我们要获取一个三角文,但这个黄向文呢,一定跟这个静态方法啊,它的生命周期一样。啊,随着应用的产生而产生,随着应用的结束而结束,啊,那么哪个上下文合适呢?在这个全局的application里,我定义一个方法。Public。Static context返回一个三角文,Get全局的global。
03:00
Application全局上下文。全局上下文对象。好,那么这个对象呢,我们先创建一个。Private。Static。Contest。IM con。这个context呢,需要初始化一下。等于。给他备注一下。嗯,初始化。全局上下文在这里面呢,只需要return。This,这个I啊,就可以这样呢,就能拿到这个全长对象之后呢,我们再回到这个啊,回到这里面之后呢,我们就可以这样。
04:04
I'application第二,Get global。Application啊,全取上文,然后呢,再点get set里面需要两个参数,第一个是你创建的这个文件的名称,那么这里面呢,我定义一个I'm即时通讯这个模式。啊,我们给它定义成啊有的不希望,不希望别人看到。然后呢,返回一个值,Out加回车,拿到了一个SP的对象。Sad pro。就是它,然后呢,把它变成全局的out shift加F。那么我不希望每次调用这个get时都产生这么一个SP对象啊,我只让它全局产生一个,那怎么办呢?给他来一个if MB等于等于空的时候。
05:00
哎,我才拗,如果他不为空,那么我就不拗了啊,这种方式。啊。接下来。开始写这个SP这个工具类的方法啊,大家用过这个SP的时候,大家想他一共有几类方法呢?我们这里暂定为这么两类,哪两类呢?保存啊,将这个数据存储到这P中,还有一类。是什么呢?获取啊获取数据这么两大类。保存方法啊和获取数据的方法。那么先啊定一个保存的方法。保存,那么大家想保存这个方法需不需要返回值?啊,很显然不需要啊。不需要返回值,只需要保存就行了,那么定义一个save方法需不需要参数?
06:07
啊,需要参数,那么需要几个参数。对,第一个。首先它需要一个key啊,根据这个key去保存啊,接下来呢,它还需要一个方法啊,还需要一个参数就是object啊。是Y流值VS啊Y流。为什么是object类型啊,我们这里呢,将这个G啊,布尔int类型通通啊都作为这个values啊,都可以啊统一进行处理,那么怎么区分判断呢?啊,这样去判断if values。Instance of,如果它是什么类型呢?如果它是string类型,那么我们这个SP。他点儿。啊,一定记着,必须得先。
07:00
这个相当于是开启一个事物,然后我就可以put。使劲将你传进来的两个参数分别放到这里面来,第一个来一个K,第二个就是你传进来的Y流值啊,最后呢,别忘了把这个数据进行提交,那他这个还报错,报错不不要紧,把它转换一下。强转成十字类型啊就可以了,接下来呢。啊,我们来处理一下这个它是布尔类型啊,我们怎么处理还是同样道理,Instance of布尔啊布尔类型。那么怎么处理呢?还是MSP点点put。布尔类型这两个参数啊,填进来。之后呢,S放进来,然后呢一定别了,提不提交是不效的。
08:03
Out,加回车强转一下,好,布尔类型搞定,接下来还差一个是int类型的sp.edit.put。Int类型啊,然后呢,里面传一个K,再来一个value。然后呢,Commit。嗯的,这样就搞定了啊,但是为了安全起见,这些地方我也同同时判断一下啊,判断它是否是in的类型啊,这样能更严谨一点。Integer int integer。二加回车强转一下。保存的方法啊,就搞定了。接下来呢,我们来处理获取的方法啊,获取数据的方法。获取数据啊,怎么处理呢?首先我先获取是实质类型的,那么它的返回值就一定是实质类型啊get实际里面需要。
09:13
传递参数啊,那大家想需要传递哪些参数?首先第一个需要一个key啊,接下来还需要一个参数,需要有什么参数呢?Default value默认值,那这里面我们就可以直接return返回M sp.get。实际类型的数据,将这个K传进来之后呢,如果他得不到啊,你想要的值,那就把这个默认值给它进行返回。这里就不需要再开启失误了啊,不需要这两个事情了啊下面。获取。布尔类型。数据还是类型,那就是布啊。
10:10
里面需要两个参数,第一个参数是这类型的P,第二参数。啊,就是布尔类型的。啊,Default value啊,然后呢,MSB点。加这个可传进来啊,然后呢,Deft。好,搞定下一个获取。Int类型数据啊,Public int类型,那就给他一个int呗,Get int好,里面需要两个参数啊,第一个参数还是需要的key值,第二参数默认值啊,Default。
11:04
Value好一下,点guide。将这个传进来,将这个t value流传进来啊。这样的这个工具类啊,我们就创建完毕了啊,包括这个保存方法和获取方法啊,同时呢,它本身是一个单立的。
我来说两句