Android 网络层的封装

因为项目需要封装了其网络层,主要对其原来的模式进行改进,使用的回调的方式来进行网络的访问和返回结果的处理,还有就是在View层和网络层之间加了一个中间层,用来分配各种网络请求,这样就可以方便的调度和管理。

我就不拿原项目的代码来演示,自己写了一个demo,首先是最底层,处理最基本的Http协议,里面包含一个execute方法,用来Post或者Get获取数据,这里为了方便我只写了一个Get,可以根据具体需要进行改成Post或者其他方法:

可以看到这个execute方法的参数是String url和Map<String,String> map,这样我们就需要一个POJO来构造这些参数:

接下来是一个工厂类,这里用到了简单工厂模式,可以根据不同的参数很方便的创造出POJO的实例:

接下来是中间层,所有的网络方法都需要经过这里才能调用底层协议,在这里进行各种网络方法的调度和管理:

自己定义回调接口,一般来说就是进行Success处理和Error处理,还可以进一步抽象:

最后就是在主函数中进行调用,这里调用的是运行在子线程中的方法,只需要构造好Callback回调函数,简单

调用即可:

		final NetworkPOJO request = NetworkFactory.creategao();	//构造POJO

		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {
				Network.postOnThread(request, new Callback() {
					@Override
					public void onSuccess(String json) {
						text.setText(json);
					}
					@Override
					public void onError() {
						text.setText("Error");
					}
				});
			}
		});

这样View层和底层中间就多了一个中间层,提供运行在不同线程的各种调用方法,使用时对其回调方法进行实现就可以了,最大的有点就是方便调度和管理。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-08 11:21:26

Android 网络层的封装的相关文章

(转载)Android支付宝支付封装代码

Android支付宝支付封装代码 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-12-22我要评论 这篇文章主要介绍了Android支付宝支付封装代码,Android支付的时候肯定会使用支付宝进行支付,封装可以简化操作步骤,感兴趣的小伙伴们可以参考一下 在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装. 封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用. ? 1 2 3 4 5 6 7 8

android sqlite数据库封装 实现crud

android常用的数据保存方式有文件.sharepreferences.数据库.网络.contentprovider集中方式. 文件存储方式,经常使用在缓存整个页面数据,比如电子书内容.html数据等. sharepreferrences存储方式,实质也就是xml文件存储的封装,常用于存储配置参数数据.当然也可以用文件存储+Properties来存储参数数据. 网络,就是将数据存储在网络空间上. contentprovider主要作用是统一数据存储方式,实现数据共享,以后有机会仔细分析下. 数

android常用对话框封装

在android开发中,经常会用到对话框跟用户进行交互,方便用户可操作性:接下来就对常用对话框进行简单封装,避免在项目中出现冗余代码,加重后期项目的维护量:代码如有问题欢迎大家拍砖指正一起进步. 先贴出演示结果,在晒出演示代码.1.运行成功后,原始界面如下:2.点击“显示普通对话框”,效果界面如下:3.点击“显示列表对话框”,效果界面如下:4.点击“显示单选按钮对话框”,效果界面如下:5.点击“显示复选对话框”,效果界面如下: 代码:1.项目目录结构如下2.对话框封装类DialogTool pa

Android使用自己封装的Http和Thread、Handler实现异步任务

目录结构如下: Http协议的封装: 使用http协议有request和response这两个主要的域,下边是Http协议封装的结构图 (1)HttpRequestInter.java:作为request域对象,应该可以获得客户端请求的地址和httpRequest对象,这样的话才可以获得客户端请求的参数等信息:另外public HttpResponseInter request() throws Exception; 使用这个方法,是当执行完request请求之后,返回一个response对象(

Android 将HTML5封装成android应用APK文件的几种方法

越来越多的开发者热衷于使用html5+JavaScript开发移动Web App.不过,HTML5 Web APP的出现能否在未来取代移动应用,就目前来说,还是个未知数.一方面,用户在使用习惯上,不喜欢在浏览器上输入复杂的网址:另一方面,Html5 Web App 存放在服务器端,在每次使用时需要进行数据传递,会造成流量浪费.有些开发者不想接触复杂的JAVA代码,那么,有什么办法,既可以使用HTMl5开发应 用,又可以将其简单封装成APK文件呢? 一.Android SDK中的WebView1.

android recyclerview adaper封装

关于Recyclerview,是比较好用的一个控件,代替了listview和gridview,灵活性比较强.基础的就不说了,我要讲的是如何封装一个基类的recyclerview adaper 代码: /** * @author:guobiaoWang on 2015/12/24 */ public abstract class BaseRecylerAdapter extends RecyclerView.Adapter<BaseRecylerHolder> implements View.O

Android中ListView封装收缩与展开

常有这种需求,即ListView中数据较多(不涉及分页),如果都展开,数据量较多,体验不好,所以需要提供用户查看更多.收缩数据的交互 截图如下:    如图所示,点击更多,则展开所有数据.点击收起,则自动收缩. 代码如下(主要通过继承Adapetr,控制展示的数据量getCount()方法实现,当数据量大于默认值(2)时,自动只展示2条数据,当点击更多时,则展示全部数据): (在使用这种方法前曾想自定义ListView实现,但遇到较多问题,如: 1.由于我们通过adapter设置数据,不直接调用

IOS+Android马甲包封装上架!

目的 我们有自己的一个主网站平台,为了推广我们的主网站平台,我们需要长期制作大量马甲app,然后引导用户到我们的主网站游戏,所以,你制作的app的功能只给审核人员看到,只是为了应付审核,app上架之后,直接通过webview打开我们给定的url地址给用户就行了. android+ios马甲包上架交流群:634921710 资料 我们提供上架所需要的各种资料,而且只能用我们提供的资料,包括:app名字.图标.启动图.引导图.app上架时候的关键字.描述.介绍图. 注:引导图:放在你app里面的图片

Android之Log封装

blog原文地址:http://yuxingxin.com/2015/10/26/AndroidLog/ Github:https://github.com/fallblank/CodeEssay