00:00
好,接下来呢,我们就开始讲这个list view的回调监听啊,接口也就是这个。接收啊和拒绝按钮这两个的回调方法,来具体看一下代码啊,在哪里呢?在这个,因为这里面。有一个接收按钮的点击事件和一个拒绝按钮的点击事件的处理啊。那么大家想点击这个接收按钮之后,哎,我要做哪些事情呢?大家看一下,我一点击这个接收按钮啊,这个接收。A用户点击了接收啊,他要先去还信服务器,告诉他我已经点击了接收按钮,然后呢,这个环形服务器啊,就会推送给B。告诉B接收了啊,同样道理,他点击拒绝按钮啊,也是啊,将这个拒绝信息先发给环境服务器,环境服务器再推送给B。
01:03
啊,就是这么一个过程,那么接下来既然你要访问服务器,那是不是就是需要联网操作啊,那么我们需要开一个直线程model.global点执行一个。这个是。去短信服务器。服务器。通知吧,通知环境服务器啊,点击了接收按钮。接受啊按钮,那具体怎么实现一下呢?这里面就需要一个em client啊环新的管理类,点get instance点点什么呢?联系人的管理者啊,然后点。
02:04
啊,接收accept ----------接收邀请信息,那这里面需要一个参数啊,大家猜应该是什么。跟环信打交道最重要的信息是什么?环信ID,那这里面传的就是环信ID,第2GET环信ID,按有异常踹一下。如果去,还进福气。啊,通知他我已经接收了按钮,啊接收了这个邀请信息,那么接下来我做哪些事情。接下来我们的数据库,哎,要不要更新。肯定要数据库的更新啊,更新当前邀请信息的状态啊。如果邀请信息发生了变化,那么我们还有哪些事情要变化啊?我的页面要发生变化。
03:07
至少要谈一个土司啊,土司不行了,接下来还要做一个事情。要刷新页面,刷新页面。好,首先啊,更改数据库,那么数据库那就是model.get点。点什么呢?邀请信息的变化,那就点呗,更新update。里面需要传一个状态啊,更新为什么状态,那就更新为。啊,接受了邀请,因为他accept接受了当前的邀请。好之后呢,后面需要一个环线ID啊,同样道理,还是给他一个环线ID,点右点get环线ID。啊,这样呢,就把这个药品信息啊,再次的保存到本地的数据库中了。
04:04
然后接下来呢,页面发生变化,那么要谈吐时,当前是什么线程?哎,当前是指线程,那么怎么办?Run u red,又一个软包。给它放在这里面。啊,首先页面上发生变化,那就来一个土司TV。来一个接受了邀请啊,提示一下,然后呢需要刷新页面,哎,刷新页面比较简单,Fresh之前我们是不是已经写过这个方法呀,哎,从数据库中获取数据,然后呢刷新页面啊。啊,再回来。回到这个地方,那么如果接受失败了呢?哎,同样我要做哪些事情?这个数据库要不要变化啊,不需要变化,那么它需不需要变化?
05:04
是不是要提示一下啊,接收邀请失败啊,啊,同时这个页面需不需要变化啊,也不需要变化,那么只要做的就是提示一下接失,那么这里来一个。TV接受邀请失败,这就是接收按钮的处理操作啊,大家再捋一遍,那首先呢,我要去环形服务器啊,通知他说我接受了这个邀请啊。短信服务器的变化啊,产生了数据的变化,哎,导致我这个数据库本地数据库要发生变化。本地数据库变化之后,哎,我这个页面也要变化。啊,以后大家啊,再分析这个数据变化的时候啊,要从这么三方面来去考虑,首先是这个。哎,网络。
06:00
啊,网络的变化啊,要考虑本地数据库文件的变化啊,本地数据的变化。接下来刷新页面啊,这个属于内存的数据的变化,内存这三者必须都去考虑一遍啊,看看他们有没有相应的变化。好,接下来看这个拒绝按钮。同样,你点击拒绝按钮之后还是要访问网络,那么要开一个直线程。你的吗?然后呢,去访问环境服务器em collect.get还是拿到联系人的管理者,然后点。啊,拒绝,拒绝是哪些方法呢?Decline啊,Invitation拒绝的意思啊,那后面还是需要大家猜是什么,还是环信的ID。踹一下。
07:02
然后呢,接下来考虑的事情,本地数据库需不需要变化?我拒绝了啊,他的邀请。那么是不是也要更新一下数据库啊,数据库变化,接下来页面需不需要变化啊,页面变化再考虑。那好,我们具体来实现一下,首先数据库变化,那么就是I'mo.get.db manager点什么呢?邀请信息的DL点二,那你既然是删除,那么哎,我就remove掉。因为你拒绝他了嘛,啊,你俩已经没有任何关系了,那我就将你俩的信息全部删掉,悠着点get。点啊点get换ID。通过这个环线ID将你俩的信息全部删掉,这是数据库的变化,然后这个页面的变化啊,又产生咋样呢?变化呢,另外一个。
08:09
在这里面首先考虑的是啊,需不需要弹个祖师,弹一个呗,TV啊弹一个。谈一个拒绝。成功了啊,解决成功了,那么这是吐司接下来哎,我还要刷新一下页面啊,因为我已经把这个药品信息删除了嘛,那你肯定要刷新页面,那就调一个。刷新页面,刷新页面,这是三拒绝成功,那么拒绝失败呢?啊,我又要做哪些事情呢?啊,又一个乱包啊同样道理,数据库哎不需要变化,这个页面呢,我也不需要变化,我只需要弹一个吐司啊通知他。
09:01
通知什么呢?拒绝失败了啊失败了,好接下来呢,我们来运行一下,看看这个效果怎么样。啊,这个运行起来了啊,之后呢,我们再运行另一个。四点事。啊,我们看一下。这个先给干掉。之后呢,我给他发好友邀请啊,这个是001发一下。001查找添加按钮,添加按钮之后呢,点击进来就显示这个页面,然后呢,我点击接受啊点击接受。诶,一点击这个接收按钮,发现它在不停的添加,这是怎么导致的,我这已经拒绝按钮,哎,它显示拒绝成功了,但是没有任何的变化。
10:04
这又是什么原因导致的呢?啊,大家想一想,什么原因能导致我这个不断的在添加呀?啊,这个集合里的数据怎么会出现这种情况呢?不要担心啊,遇到bug不要慌,我们调试一下找到哪呢?找到这个。这个地方。找到这。啊,这个地方是不是就是从这个邀请信息的数据库中啊,获取所有的邀请信息啊,啊,我们先从中间啊掐一下,看看它是I的方法有问题,还是get方法有问题,还是后面的adapt有问题啊,都是通过这个就能查出来,我们debug一下。4.4。啊,应用起来了,然后呢,我们点击添加按钮。
11:01
是不是掉了掉了退出一下。登录。然后呢,这边有断点啊,那么这个断点呢。不需要了,嗯,再前进。全程运行。来,到这页面进来。哎,他就走到了这个端点啊,这个端点第一次先放过。放过就来到了这个页面啊,我点击这个接收按钮之后啊,大家看一下。点击这个接收按钮之后,它是不是就如果成功的话,就执行这段代码啊,这段代码里有一个刷新页面这个程序啊,刷页面的程序,那我们进来看一下就会走到这,他从这个数据库中去拿到所有的邀请信息之后呢,再传给这个适配器啊好,那么看一下。他点击这个添加按钮。
12:05
这个点击接受。啊,他又一次进来了,这里面啊,进到这里面,那这里面呢,我们看一下这个盖的方法有没有问题啊,首先进去啊,走走走。走。暂时没有发现问题啊,进来之后呢,往下走走走。哎,这。暂时都没有问题。啊,再往下走走。啊,为什么说没有问题呢?啊,这后面这显示的数据呢,添加信息这个状态是接受了新的邀请啊,暂时都没有问题,再往下走走走走。啊,这些信息的名称啊,环线ID都已经被封装好了啊,都没有问题,再往下走。啊,走。再走,哎,它是不是只添加了一个这个要点信息啊,哎,然后看一下这个size是不是变成一啊,哎,是一,那我们出去全数运行再出去。
13:08
出去之后呢,发现这个页面中怎么显示了两个,嗯,明明这个返回的size是一啊,它怎么变成两个呢?那我们再来看一下,那就说明从网络到那个爱的方法,再到这个钙的方法都没有问题啊,给他换一下。从这个网络。环境的网络啊,到前面这个爱的方法啊,也就是保存。再到这个get方法。这些数据都是正常的,但是从这个get到这个adapt。的时候。它这个显示有问题了啊,明明这返回的数集合是一啊到这儿呢,显示的时候呢,它显示了两个数据。啊,这是产生问题,那接下来我们再往下走。
14:01
啊,说到这儿。嗯,还能选出一些吗,看看。再点击一下接收按钮啊,接收按钮之后呢,我再出来再走这啊走到这儿,走到这儿看一下这个数据集合是多少,哎,它还是一,那么我这个页面呢。它目前没变化,那我再选出运行一下,刚才说到哪变成了三。啊,变成了三,那就产生问题了,那么再找一下接受。找到这找到这之后呢,我们进去看一下啊,为什么它怎么不断的在增加呢进来。这儿的时候传进来的size还是一啊,我们往下走。进到这当前这个赛事之一,再往下走。看看它是几了,它已经变成了四啊,它为什么变成了四呢?是不是它每次都在添加呀,它没有对它这个集合进行清空啊,啊,那这个地方就需要这么改一下,怎么改呢?M,因为in fair.clear啊,每次进来之前先将这个集合清空,清空之后再将传进来的集合数据进行更新啊,这样就OK了啊,大家一定要学会这个分析bug啊,查找bug的方法啊,至于这个bug啊,我觉得还是小事啊,最大的问题是这个要学会解决问题的方法。
15:27
接下来我们看一下。能不能就改了这个问题?好运行起来了,然后呢,再把这个运行起来。好运起来了之后呢,我们在发送一个邀请,001查找。添加啊,过来之后点击这个,我先点击拒绝按钮啊,这个页面就没了拒绝成功提示啊,暂时没有问题,然后呢,我再来一个添加按钮。
16:03
进来。进来之后呢,我点击接收,哎,当前这个页面就没有了啊,然后呢,回到这里面。这里面提示呢,接受啊,邀请被接受了啊,这个过程就搞定了。
我来说两句