Android项目式案例开发 (3)教学课件_第1页
Android项目式案例开发 (3)教学课件_第2页
Android项目式案例开发 (3)教学课件_第3页
Android项目式案例开发 (3)教学课件_第4页
Android项目式案例开发 (3)教学课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、模块三 扫描记录学习目标1了解数据传输过程2学习响应与请求的相互关系3掌握历史记录的获取流程学习路径获取服务器的数据使用OkHttp网络协议进行数据传输任务描述功能描述本模块将实现本项目中的扫描记录模块任务描述基本框架实现效果图历史记录流程 Android提供了两种HTTP交互的方式:HttpURLConnection和Apache HTTP Client,两者都支持HTTPS、流的上传和下载、配置超时、IPv6和连接池。虽然以上都可以满足各种HTTP请求的需求。但更高效的使用HTTP可以使应用运行更快、更节省流量。通过OkHttp库将扫描过后的历史记录清晰明了的展现给用户,历史记录的实现步骤

2、。任务技能技能点一 历史记录获取流程历史记录设计思路通过Diapatcher不断从RequestQueue中取出请求(Call),根据是否已缓存调用Cache或Network这两类数据获取接口之一,从内存缓存或是服务器取得请求的数据。该引擎有同步和异步请求,同步请求通过Call.execute()直接返回当前的Response,而异步请求会把当前的请求Call.enqueue添加(AsyncCall)到请求队列中,并通过回调(Callback)的方式来获取最后结果。任务技能技能点一 历史记录获取流程历史记录设计思路根据历史记录总体设计后,详细请求流程如图任务技能技能点一 历史记录获取流程历史记

3、录请求机制 多路复用机制 HttpEngine(Http引擎)每次请求数据时,都会先调用nextConnection(),如果返回一个连接对象,则就调用sendRequest()发送一个请求。如果nextConnection()返回为null,就会调用createNextConnection()创建一个连接,然后发送请求。如果第一次调用readNetworkResponse(),可能会返回一个null,结束当前的调用,回到nextConnection()进行再一次连接。任务技能技能点一 历史记录获取流程历史记录请求机制 重连机制通过一个while的循环,判断条件是当前状态是否连接,如果没有连接

4、,调用getResquese()发送请求,紧接着HttpEngine调用recover(),进行重连操作,直到当前连接状态为已连接,结束循环。任务技能技能点一 历史记录获取流程任务实施4321通过网络OkHttp协议,进行网络的数据传输编写扫描记录的适配器布局文件建立适配器文件获取服务器数据,显示在界面上Volley简介 在2013年Google IO大会上推出了一个新的网络通信框架Volley。Volley既可以访问网络取得数据,也可以加载图片,并且在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Vo

5、lley的表现就会非常糟糕。在使用Volley前请下载Volley库放在libs目录下并加入add到工程中。课外扩展技能扩展 VolleyVolley功能 Json、图像等异步下载。网络请求的排序(scheduling)。网络请求的优先级处理。缓存。多级别取消请求。和Activity的生命周期联动(Activity结束的同时取消所有网络请求)。Volley优点 课外扩展技能扩展 VolleyVolley缺点使用Volley加载数据首先需要获取到一个RequestQueue对象,可以调用如下方法获取到:任务技能技能扩展 VolleyStringResponse的用法的用法接着要发出一条HTTP请

6、求,还需要创建一个StringResponse对象,如下所示:最后,将这个StringRequest对象添加到RequestQueue里面就可以了,如下所示:运行程序,并发出HTTP请求,就会看到LogCat中打印使用Volley加载数据 类似于StringRequest,JsonRequest也是继承自Request类的,由于JsonRequest是一个抽象类,因此无法直接创建它的实例,那么只能从它的子类入手。JsonRequest有两个直接的子类,JsonObjectRequest和JsonArrayRequest,一个是用于请求一段JSON数据的,一个是用于请求一段JSON数组的。任务技

7、能技能扩展 VolleyJsonRequest的用法的用法首先new出一个JsonObjectRequest对象最后再将这个JsonObjectRequest对象添加到RequestQueue里使用Volley加载数据任务技能技能扩展 Volley添加请求添加请求add(Request)及其工作流程及其工作流程cache 贮藏 route 航线platform 平台 dispatcher 调度response 回答 result 结果flash 闪光 recover 恢复position 位置 record 记录英语角选择题选择题1. 通过OkHttp的学习判断以下说法正确的是(C )。A H

8、ttpengine.java这个类主要是管理HTTP和SPDY连接时减少网络延迟 B okhttpclient.java这个类主要是做平台适应性,针对Android2.3到5.0后的网络请求的适配支持C 如果服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IPD OkHttp支持各种版本的协议具有一种特性2. 下列选项中不属于OkHttp中类的是( D)。A Platfrom.java B Connection.java C Dispatcher.java D Callback.java3. 根据任务实施的内容在下列选项中选出设置连接的超时时间的选项(A )。

9、A .connectTimeout(15, TimeUnit.SECONDS)B .writeTimeout(20, TimeUnit.SECONDS)C .readTimeout(20, TimeUnit.SECONDS)D .cache(new Cache(sdcache.getAbsoluteFile(), cacheSize)4. 以下选项是post请求中请求参数的注解是(C)。A param url B param callback C param formBody D Override5. 根据任务实施判断下列选项,其中描述正确的是(B )。A /告诉适配器取得目前容器中的数据ID

10、 Override public int getCount() return list_codename.size(); 任务习题B /告诉适配器取得目前容器中的数据对象 Override public Object getItem(int position) return list_codename.get(position) C /实现getView方法 Override public long getItemId(int position) return position; D /返回已定义数据源总数量 Override public View getView(int position, View convertView, ViewGroup parent) 填空题填空题1. 更高效的使用 可以使应用运行更快、更节省流量2. 类有权衡在选择谈判时哪些选项包括一个安全的连接到远程主机3. HttpEngine(Http引擎)每次请求数据时,都会先调用 ,如果返回一个连接对象,则就调用 发送一个请求。4. 在多路复用机制中如果第一次调用readNetworkResponse(),可能会返回一个 ,那

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论