00:00
接下来呢,因为我们一会儿啊要使用ID,而且大家也学过,所以这个案例的话呢,我就给它运行起来,然后给大家略讲一讲。怎么用,然后后面我就直接用了啊好,这个案例呢,在我们的这个。首先音质量啊,这里面有一个叫班的service啊,就这哥们好把它给导进来啊好。我看看啊,再见面。有其他调整好的,没有发现有乱码。有落买的话是吧,咱们改一下呗,And service好把它给导到我们的这个啊。这里来好那班的是对吧,好,我们去把它给。发现好,然后有了过后呢,来到我们的这个地方安的C。就这是吧,好,那这过程中我看啊,他现在现在的话呢。
01:02
我看看现在还没有起来,这时我们去劝一下。这个时候他应该报了一些错,你看。是没是有问题啊,那再改一改,那编译的话,我现在用的是多少三好,我这个手呢。改为这个半角,注意啊,我现在导游工程包错了,假如现在是你,该怎么解决?是改一下版本啊的版本是23.02对吧,这是我的二,注意如果你不知道你的版本是多少怎么办?如果你不知道你一个版本是多少,可以什么创建一个model,随便创建一个model,看看他多少版本的,教大家一招穿空的,假如说你不知道你的版本是多少,你看你你现在创建一个。穿过后嘞,好,你看啊,我就知道刚创建这个是它系统自默认的呀,好,那这个时候你就一看好这个里面它有一个格纳文件,诶你知道哦,我的是S3呢哦,编辑用它嘞,针对是S3呢哦,然后说哎,这个用的是S3.30呢。
02:16
你看这样的话,你还需要记得住吗?以后不需要了,所以就改就可以了,好,这是2230,这个针对是多少,23好,那下面是没有用到啊,就不用管它,好接下来这题改过后还有错怎么办?同步一下对不对?好,通过下。好这个的话呢,啊是不是就就可以了,这个把service对吧?好这个的话呢,有差异,运行起也也就不会有好那有过后同学们在我们地方里面的话呢,好我们可以来看一下代码,这里面有乱码对吧,有乱码啊这些乱码怎么解决啊。好,选择这哥们。这个在这里。
03:01
变一下。改为多少啊?GBK对吧,复制一下,然后再改成多少对一杠八是不是啊,这样的话呢就可以了。好转过来,然后这个地方呢,有过后。好,又改为多少啊?DK,好,复制填写,再改为一是吧。对不对,好,那有了过后,这里面ou AI有一个这个。文件好,我看一下啊,这里面有个A对吧,有这些东西好,那这时候报错,我们去运起来应该它就可以了啊,因为它这里面有些R文件没有生成嘛,是不是看见有好就可以了,好那这个时候有了过后呢。好,接下来我们就要去点击了,点击开启服务。
04:00
得到服务的数据是不是得到了就证明成功了?好了,同学们,我们为什么要去这个,我们为什么要用这个绑定的方式呢?好,给大家写一个笔记了啊,为什么我要用这个呢?好在这里面写一下这五点,MD,好,然后这时候。好,然后我们的这里面呢,就是一个音乐播放器,说明大家想我们平时。播放音乐、播放音乐的列表以及逻辑。一般在哪里啊?啊,同学们,就是我们音乐播放器的逻辑,或者说这个啊,音乐的的列表数据封装在哪里啊。
05:09
问哪里啊,这样想啊,大家大家应该有听过音乐,然后你听一首歌的时候,然后你点返回退出页面,回到桌面,你是点返回是是爱消回了,这个歌还可以播吗?可以,然后播文过后他还给播下手吗?可好,那如果你把这个数据集合写在艾,你经返回过,这个艾消毁了是不是,那集合数据还在吗?那如果依照我推断的话,那我们的数据结合是是放在艾里的吗?OK。是不是啊,那也就是说音乐播放逻辑,音乐列表数据封在哪里啊,对不对,这个是里面里面对吧,逻辑啊,一些播放上一个下一个播放完成啊,这逻辑这都放在里面,第二,那么我们播一首歌的时候,大家应该用过音乐播放器,音乐播放器的时候是有一个歌词同步啊,然后显示。
06:20
作者呀,是不是就是演唱者,是不是还有当前进度啊等等这些吧,好,那么这个时候需要显示音乐的这个播放时间,以及我们的演唱者啊,以及我们用户点击上一个视频音乐。啊上点击上一个音乐,下一个音乐,或者是这个做一个歌词同步是在哪里做啊,在哪里在哪里做啊阿卡对吧,里面做这个事情好,那我问大家。
07:15
我们在这里面显示演唱者,以及上一个下一个,刚才我们说了逻辑分在这里,那是他多上一个,下一个是在这里啊,那么他们俩之间,也就是说我activity要去显示演唱者。那么下要去从服务器得到这个信息啊好,那这个时候就需要和服务进行交互。交互,那么交互的话,是不是我们要X里面要到服里面去取信息啊,对不对,去取信息好或者是交互对吧,那这个时候我们就要想去H里面去那边取就可以通过AI,它相当于是一个接口。
08:05
通过这样的一个接口文件,它生成一个服务的一个代理类,我们就可以拿到服务任何的方法和字段。知道吧,那假如说我们现在要得到演唱者,是不是可以从服务里面的列表获取个对象,然后得到它的名称呢?是可以得到了,所以就用了它。啊,It和服务性交互会用它啊,其实还可以用一个就是的。对吧,比如说你点这个按钮,然后的话呢。点了按钮过后,你发一个消息,发消息过后他收到了,所以可以做处理啊啊其实还可以做什么呢?广播的卡对对不对,还可以什么even。
09:01
这个就是这个叫做bus。知道吧,领导,这是一个什么框架,对吧,第三方框架。好,那同学们,也就是说我们一会的话,这个会用到,这个会用到,但还不用啊,啊这个会用到,那也就是说我们三种都用啊,三种都用啊,但是不同的情况呢,用不同的啊好,那也就是说大家知道一下在中间他们交互对不对。因服务是不能逻辑的,它是不能显示的,但呢它显示,那显示内容来自于哪里,来自于服务,那是必需要他们什么交互,而且S需要做点击,点击时候再调一下服务里面的上一个下一个,所以他们就形成一个什么交,对不对,而且这个也就是我们的音乐播放器最大的价值所在啊,在所在。
10:00
好,那同学们接下来我们来看这个小案例啊,怎么做到的,首先在我们这地方里面,小案例里面,它有一个按钮,比如说我们一点绑定。这时候绑定服务,大家看好代码。这个时候初始化这没问题吧,这代码,然后一点击。绑定。就走站,看到没有绑定服务。是不是好,那也就是说我们的这个小氨离子里面。AIDL小案例它的步骤是什么呢?第一。它其实呢啊,当我们点击的时候,它一就是应该在之前就应该要定义一个服务。好定义服务过后呢,我们才能够启动服务吧,好,所以的话把服务代码拿过来,他其实要先做这样的一个事情。啊,现状的事情,比如说这个这个服务。
11:07
啊,当然了,这个服务的话呢,它最基本的,比如说这些这些参数的话呢,这些我都可以干掉啊,然后最核心的。嗯,像这些其实这个服务,他这个服务就是这个溃,你没有风险的话呢,它也会不能帮我创建服务。然后。啊,最主要是这个方法啊,要在NB的。啊,这个看吧,这里面像你看这里面是有个什么,就是说最主要是这个它要返回这个,这个呢是I al的文件生成的。大家都知道吧,知道是吧,好,那么也就是说我们把这个绑定。这个刘总对吧?啊,其实这个东西的话呢,啊,这个可以干掉,最主要的是,最主要的是这个方法你要重写。
12:07
很棒的就是这个,那这个呢,注意这个它是什么呢?它是由AI6生成的吧,啊由AIDL文件生成的啊生成然后呢,这里面它有一些方法,然后呢要重写,这时一调跟name。这一调更内,其实它是调什么服务的,这个更内蒙方法吧,就调它,所以我们得到的是内是吧,Service。看到没有,然后这里面一调的话。好,这个时候呢,它掉过后还有一个A格,A格的话它就掉哪里啊24大家看一下,所以该得到的是什么S4。看到没有,好是因为呢拼起来的好,这是我们这个第一步,第一个服务,第二步定义一个什么AIDL文件,这文件怎么定义的呢。
13:12
在这。就这么一个接口文件好。他做这样的一个事情,知道吧,好,经过后第三。的话就需要服务,需要在功能什么清单文件干嘛注册。好,这时候呢,他这个代码里面就会有注册,就在这里吧,注册好这里注册过了还有一个动作。再有个动作啊,好好第然后接下来第四步就是要绑定听方式启动什么服啊,那问大家之前在学技术的时候,启动服务有几种方式啊,一是绑定,还有是什么其他的service对不对?好,那这个时候大家可以看一下,刚才又回到我们这里了,来到为这里,你看这是就是我们所做的事情了。
14:28
好好,那这个时候呢,我们就要把这个启动,但是这个启动就是有指定哪个服务吗?注意如果是这样的想法的话呢,在5.0呢会报错,这时候呢,你需要的是指定某个服务,对道吧,好,就是my service点知道吧,再新版后需要这样子啊,我就这样写好,还有的话,你绑定后呢,建议大家再去start service,如果不这样做的话,它会有个问题。
15:02
每次都启动一个新的服务,大家给大家看一下。大家可以看一下日志,绑定服务服务这个创建了吧,办创建了吧。再再这样子,他是每次就去重新去绑定的。我看绑定绑定。稳定,我看这里面。在这个地方里面,这是我看这里面都打字了。啊。他有一个叫。好,然后的话呢,它这个恩师大大,大家看一下恩师大有执行吗。是没有啊,那也就是说我每次点击的时候,这个时候它掉符里面的其他方法吗。
16:00
是没有啊,那以那我我像这样情况是我想跟服务交互的东西是不可以啊,但是如果我这样大家好,如果我把这个start打开。它会有个好处,就是他每次呢会多调一个方法,而且我们可以把一些数据传给他啊,非常好。我们现在运起来。啊,绑定一次了,再绑定一次,你看这是大的被调用了,那服务的大被调用是我就可以传我们的数据进去啊,输进去过后,这哥们在服务里面是可以接收我们的信息啊。明白吧,它就有这个好处,所以的话呢,我们一般情况下要在这里面不光要绑定,也同时start service。但这个服务如果被创建过,他还被创建吗?不会了,对不对,所以的话呢,啊,我们可以这样子啊,所以一般会再次大service一下啊,啊这是一个一个一个一个经验啊,如果不加上的话,他可能会就会有问题,就没法沟通了,就是没法把这个数据传给他,因为有时候我们从数据可以放到一图里面。
17:09
对不对啊,放到一组里面好。那有了后呢,啊,注意要把它给这样去做这个事情,做事情过后注意,特别是这个啊,它是自动生成的,对吧,然后呢,要重启一下,好,那同学们这就是一个小案例,大家呢,可以去自己看一看,那你基于这个案例的话,你就把它移到我们的项目中了啊前不久有个同学他做了一个这样的功能。做什么功能呢?就是他用手机,他他们做给军方做一个项目。就是说呢,训方不是以后带个头盔,然后可以录录屏嘛,回到服务器是吧。然后这个时候呢,他要退出过后还不继续录,那么一次把这个逻辑放到哪里啊,在服务里面知道吧,这时候需要交互,那么他也就参照我这个音乐播放器这个案例。
18:05
去整合到服务里面去的,懂吧,所以大家一定要学习,以后肯定用到服务的地方啊好,那同学们有了这个案例过后呢,好注意现在这个案例刚才给他演示的是绑定过后,然后再得到服务,其实还有一个特点就是服务里面。它也可以得到X里面的东西,大家看好。你看这个土司是由service回调。这个at弹出来的就是服务,就是说呢,服务也可以去调用at里面的方法知道吧。明白吧,这样的来回掉了,但是我们今天用不着,我们今天用的就是艾卡面去得到服务的数据,是只要it去调服务就可以了。知道吧,啊。OK,但是如果我们想要让我们的服务回调艾的方法,这时候呢,你就去看一下里外的代码好吧,好,那这同学们,这就是我们的一个所讲的一个小案例,然后呢,一会我就去写这个代码了,好把它给保存一下。
我来说两句