欠伸展肢体,吟咏心自愉。这篇文章主要讲述一种Android数据请求框架相关的知识,希望能为你提供帮助。
大部分android应用一般都涉及到跟server的交互,除非是某些单机应用。既然要跟server打交道,向server请求数据差点儿是必做的事情,或许每家的APP都有一套自己的详细实现逻辑。但我们还是能够抽象出来一个通用的数据请求框架。
先上图:
文章图片
我们来详细分析一下。首先竖直虚线左側是Androidclient。右側是server、后台数据库。
【一种Android数据请求框架】左側图中,3个灰色的模块就是Android中的MVC(具体介绍请參考之前的一篇文字《Android中的MVC模式简单介绍》),当中Activity或Fragment充当了Controller的角色。
接下来我们具体介绍下具体的步骤:
1.在Android应用中。用户一般都通过View来交互。比方点击某个button调用接口请求数据,或者对ListView进行下拉刷新等,所以非常多时候我们是通过View来告诉Controller须要请求数据,当然也有例外的情况,比方当载入某个Activity时就须要先请求数据,此时不须要第1步的通过View来触发请求。
2.这一步比較简单。就是向server发送http请求。在Android应用中,一般都是通过http的方式来请求数据的,请求过程中附带必需的參数。为了防止ANR。此操作包或兴许的3、4、5步都应当在子线程中实现。
3.server向client返回数据。通常就是轻量级的易传输的JSON格式,当然也有使用XML格式的。
4.client拿到JSON格式的返回结果后,我们并不能直接使用。须要使用一个解析器Parser,把JSON数据解析成我们须要的数据模型。即得到Models。在这里,假设是某些特殊的数据或者产品需求,能够对数据做缓存处理,当网络异常或者下次不想联网请求数据时,我们能够直接从Cache中拿数据来使用。
5.当数据被解析成Models之后,Controller就能够使用它来更新视图了,解析数据完毕后,一般都会设置一种机制来通知Controller。方法有非常多,比方Android的消息机制。
6.最后一步是Controller使用Models中的数据来更新View。须要注意的是必须在UI线程来运行。
数据请求框架大概就是这样,比較清楚的一个逻辑。我们请求的数据中不可避免地会有图片数据,那么图片怎样下载、怎样做缓存,又是一个非常大的问题,在这里先总结这个整体的数据请求框架,兴许会总结一下关于图片下载、缓存、载入的框架。
推荐阅读
- HibernateTools实现pojo类 数据库schma mapping映射的相互转换 二
- android项目中的拍照和本地图片截图
- Android Api Component---翻译任务和回退栈(Tasks and Back Stack)
- Android中线程间通信原理分析(Looper,MessageQueue,Handler)
- Java +安卓 定时任务
- Android攻城狮http协议
- android studio的git笔记
- 关于Android SDK Manager更新速度慢的解决方法
- Webhook用法教程(在Python Flask中使用Webhook)