Volley.jar下载

在Application初始化 Volley queues=Volley.newRequestQueue(appContext);

并返回RequestQueue 对象

public static RequestQueue getHttpQueues(){
return queues;
}

import android.content.Context;

import com.android.volley.Response.ErrorListener;
import com.android.volley.Response.Listener;
import com.android.volley.VolleyError;
importpublic abstract class VolleyInterface {
public Context context;
public static Listener<ResultModel> mListener;
public static ErrorListener mErrorListener; public VolleyInterface(Context context,Listener<ResultModel> lisener,ErrorListener errorLisener){
this.context=context;
mListener=lisener;
mErrorListener=errorLisener;
} public Listener<ResultModel> loadingListener(){
mListener=new Listener<ResultModel>() { @Override
public void onResponse(ResultModel resultModel) {
onMySuccess(resultModel);
}
};
return mListener;
} public ErrorListener errorListener(){
mErrorListener=new ErrorListener() { @Override
public void onErrorResponse(VolleyError volleyError) {
OnMyError(volleyError);
}
};
return mErrorListener;
} public abstract void onMySuccess(ResultModel resultModel);
public abstract void OnMyError(VolleyError volleyError); }

VolleyRequest类

import java.util.Map;

import android.content.Context;

import com.android.volley.Request.Method;
importimportpublic class VolleyRequest {
private static FastJsonRequest<ResultModel> fastJsonRequest;
public static Context context;
public static void RequestGet(Context mContext,String url,String tag,VolleyInterface vif){
FandDaApplication.getHttpQueues().cancelAll(tag);
fastJsonRequest=new FastJsonRequest<ResultModel>(url, ResultModel.class, vif.loadingListener(), vif.errorListener());
fastJsonRequest.setTag(tag);
FandDaApplication.getHttpQueues().add(fastJsonRequest);
//调用会引发com.android.volley.NoConnectionError: java.io.InterruptedIOException错误,原因是volley已经调用过了
//FandDaApplication.getHttpQueues().start();
} public static void RequestPost(Context context,String url,Map<String,String> map,String tag,VolleyInterface vif){
FandDaApplication.getHttpQueues().cancelAll(tag);
fastJsonRequest=new FastJsonRequest<ResultModel>(Method.POST,url, ResultModel.class, map,vif.loadingListener(), vif.errorListener());
fastJsonRequest.setTag(tag);
FandDaApplication.getHttpQueues().add(fastJsonRequest);
//调用会引发com.android.volley.NoConnectionError: java.io.InterruptedIOException错误,原因是volley已经调用过了
//FandDaApplication.getHttpQueues().start();
} }

使用方式

String url=new BroadcastAPI().getBroadcastList(0,"",0,"",page,pageSize);
VolleyRequest.RequestGet(context, url, "NEWINVILIST",
new VolleyInterface(context,VolleyInterface.mListener,VolleyInterface.mErrorListener) {
@Override
public void onMySuccess(ResultModel resultModel) {
if(ResultApi.isCode(resultModel)){
list =JSON.parseArray(resultModel.getResult().toString(), BroadcastDetailsModel.class);
//如果用户刷新数据则清空原来缓存记录,为了保证数据统一性
BroadcastTable.getInstance(context).deleteAllData(BroadcastTable.newNumber);
if (mType == 1) {
adapter.addItemTop(list);
} else {
adapter.addItemLast(list);
}
BroadcastTable.getInstance(context).saveBroadcastList(list,BroadcastTable.newNumber);
}else{
if(mType==1){
ToastUtil.show(context, getString(R.string.toast_empty_data));
}else{
ToastUtil.show(context, getString(R.string.toast_next_empty));
}
}
mSwipeRefreshWidget.setRefreshing(false);
} @Override
public void OnMyError(VolleyError volleyError) {
ToastUtil.show(context, volleyError.getMessage());
mSwipeRefreshWidget.setRefreshing(false);
}
});
public class ResultModel {
private int code;
private String msg;
private Object result;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getResult() {
return result;
}
public void setResult(Object result) {
this.result = result;
}

Volley封装的更多相关文章

  1. 利用Volley封装好的图片缓存处理加载图片

    Volley 工具箱中提供了一种通过 DiskBasedCache 类实现的标准缓存.这个类能够缓存文件到磁盘的指定目录.但是为了使用 ImageLoader,我们应该提供一个自定义的内存 LRC b ...

  2. Volley源码分析(五)Volley源码总结篇

    volley关键的代码这里已经分析完了,下面梳理一下完整的Volley流程 Volley的使用从构造Request对象开始,Volley默认提供了四种request的实现,StringRequest, ...

  3. Rx-Volley 自己来封装

    自从15年接触了RxJava,对函数式编程越发的喜爱.以前Android项目上网络层都是统一的使用Volley,已经对网络请求的回调,多个回调嵌入各种不爽了,趁着年前任务轻松,赶紧的将Volley封装 ...

  4. 【Android】《App研发录》总结

    说明 看这本书的时候,总感觉怪怪的. 因为在地铁上看完的,作者书中基本都是他自己工作中遇到的问题和坑,虽说这样会让人感觉找到了解决方案,可以再进行深入的研究,可是某些地方介绍的有点片面,仅仅是引用部分 ...

  5. Retrofit2 源码解析

    原文链接:http://bxbxbai.github.io/2015/12/13/retrofit2-analysis/ 公司里最近做的项目中网络框架用的就是Retrofit,用的多了以后觉得这个框架 ...

  6. Android 网络请求库volley的封装,让请求更方便

    首先封装一下volley 请求 public class CustomRequest extends StringRequest { private static final String TAG = ...

  7. volley二次封装

    产品中使用Volley框架已有多时,本身已有良好封装的Volley确实给程序开发带来了很多便利与快捷.但随着产品功能的不断增加,服务器接口的不断复杂化,直接使用Volley原生的JSONObjectR ...

  8. Volley自定义Request及使用单例封装RequestQueue

    一.自定义Request Volley的所有的请求的超类型是Resuest,所有我们常用的请求都是这个类的子类,那么我们自定义View肯定也是基于这个类的. 案例: package com.zhy.v ...

  9. 转-封装网络请求库,统一处理通用异常 (基于volley网络请求库)

    http://blog.csdn.net/kroclin/article/details/40540761 一.前言 volley的发布让网络请求也变得十分便利,但是我们通常懒得很想用一两句代码实现一 ...

随机推荐

  1. django实现api跨域请求访问

    第一步:安装 django-cors-headers pip install django-cors-headers 第二步:配置settings.py文件 --------------------- ...

  2. python------模块定义、导入、优化 ------->re模块

    该部分内容引用自:http://www.cnblogs.com/alex3714/articles/5161349.html 谢谢原博主的文章,只是自己学习,无其他使用. re模块 常用正则表达式符号 ...

  3. windows知识

    文章目录 系统 修改远程桌面的端口号 IE选项中reset web setting不可用(灰色)的解决办法 重装系统后,修改默认程序安装目录.我的文档.桌面 路径 Keep network addre ...

  4. openresty 集成 keycloak-oauth-oidc

    keycloak 是一个比较全,而且比较方便的sso 解决方案,同时为我们提供了灵活的扩展特性 备注: 测试使用docker-compose 运行,对于keycloak 使用pg 数据库做为后端存储 ...

  5. sqler sql 转rest api 的工具试用

    sqler 从开源很快就获取了1k的star,使用起来很方便,而且也很灵活,支持的数据库也比较多. 支持的功能 无需依赖,可独立使用: 支持多种数据可类型,包括:SQL Server, MYSQL, ...

  6. 数学与猜想 合情推理模式 (G. 波利亚 著)

    第十二章 几个著名模式 (已看) $1. 证实一个结论 $2. 连续证实几个结论 $3. 证实一个未必可信的结论 $4. 类比推理 $5. 加深类比 $6. 被隐没的类比推理 第十三章 更多的模式与最 ...

  7. windows删除文件或目录CMD命令

    rd/s/q 盘符:\某个文件夹  (强制删除文件文件夹和文件夹内所有文件)del/f/s/q 盘符:\文件名  (强制删除文件,文件名必须加文件后缀名)

  8. taro 最佳实践

    对 JSX 支持程度补充说明: 不能在包含 JSX 元素的 map 循环中使用 if 表达式 不能使用 Array#map 之外的方法操作 JSX 数组 不能在 JSX 参数中使用匿名函数 暂不支持在 ...

  9. NLP自然语言处理中的hanlp分词实例

    本篇分享的依然是关于hanlp的分词使用,文章内容分享自 gladosAI 的博客,本篇文章中提出了一个问题,hanlp分词影响了实验判断结果.为何会如此,不妨一起学习一下 gladosAI 的这篇文 ...

  10. Maven+Eclipse+SparkStreaming+Kafka整合

    版本号: maven3.5.0     scala IDE for Eclipse:版本(4.6.1)    spark-2.1.1-bin-hadoop2.7    kafka_2.11-0.8.2 ...