android-async-http取消请求
2019独角兽企业重金招聘Python工程师标准>>>
前言
关于android-async-http诸多,相信大家都有一定的了解。我在这里只简单的说一下它的取消请求这一块。所有结论都是在同一个Context情况下。
能被取消请求的请求
android-async-http能被取消请求的请求必须传入一个Context,否则则没有任何效果。以简单的get请求为例。
get(context, url, params, responseHandler);
下面是一个网络请求类:
/*** 网络请求* @author Yang* @date 2015年3月16日 下午2:58:13*/
public class FMHttpClient {private AsyncHttpClient client;public FMHttpClient() {client = new AsyncHttpClient();}/*** 获取AsyncHttpClient对象。* @return*/public AsyncHttpClient getAsyncHttpClient(){return client;}/*** Get请求。* @param context* @param url* @param params* @param responseHandler* @return RequestHandle*/public RequestHandle get(Context context,String url, RequestParamparams,ResponseHandlerInterface responseHandler){return client.get(context, url, params, responseHandler);} /*** 取消同一个Context下所有待执行的网络请求。* @param context* @param mayInterruptIfRunning 是否同时取消正在进行的网络请求*/public void cancelRequests(Context context,boolean mayInterruptIfRunning){client.cancelRequests(context, mayInterruptIfRunning);}/*** 取消所有待执行的网络请求。* @param mayInterruptIfRunning 是否同时取消正在进行的网络请求*/public void cancelAllRequests(boolean mayInterruptIfRunning){client.cancelAllRequests(mayInterruptIfRunning);}}
3. 取消请求的三种方式
(1) 第一种取消请求
cancelRequests(Context context, boolean mayInterruptIfRunning);//在AsyncHttpClient中
(2) 第二种取消请求
cancelAllRequests(boolean mayInterruptIfRunning);//在AsyncHttpClient中
(3) 第三种取消请求
cancel(boolean mayInterruptIfRunning) //在RequestHandle中
下面请看主程序实现类:
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);String url1 = "https://www.baidu.com/";FMHttpClient client = new FMHttpClient();RequestHandle rd1 = client.get(this, url1, null, new AsyncHttpResponseHandler(){@Overridepublic void onSuccess(int arg0, Header[] arg1, byte[] arg2) {System.out.println("content1 size: "+arg2.length);}@Overridepublic void onFailure(int arg0, Header[] arg1, byte[] arg2,Throwable arg3) {System.out.println("onFailure1");}@Overridepublic void onFinish() {System.out.println("onFinish1");}});String url2 = "http://www.hao123.com/";RequestHandle rd2 = client.get(this, url2, null, new AsyncHttpResponseHandler(){@Overridepublic void onSuccess(int arg0, Header[] arg1, byte[] arg2) {System.out.println("content2 size: "+arg2.length);}@Overridepublic void onFailure(int arg0, Header[] arg1, byte[] arg2,Throwable arg3) {System.out.println("onFailure2");}@Overridepublic void onFinish() {System.out.println("onFinish2");}});//rd1.cancel(true);//client.cancelRequests(this, true);//client.cancelAllRequests(true);System.out.println("result1-->"+rd1.isCancelled());System.out.println("result2-->"+rd2.isCancelled());}
}
两个或者两个以上的请求:
使用第一种和第二中一样,则打印结果都为true,两个请求都被取消。假设需求要求各个取消请求互不影响的话,那这两钟方法都不可取,而需求是要求所有请求都被取消,那么这两种都可以使用,不过优先选择第二种。
使用第三种取消请求,对应其中某一个请求,则此请求将会被取消,而其他请求不被影响。
一个请求:
三种方式随便用。
转载于:https://my.oschina.net/u/1257439/blog/387673
android-async-http取消请求相关推荐
- android网络请求撤销,Android OkHttp + Retrofit 取消请求的方法
前言 在某一个界面,用户发起了一个网络请求,因为某种原因用户在网络请求完成前离开了当前界面,比较好的做法是取消这个网络请求.对于OkHttp来说,具体是调用Call的cancel方法. 如何找到这一个 ...
- android 设置允许http请求_网络请求框架----OkHttp原理
一.前言 在 Android 中,网络请求是一个必不可少的功能,因此就有许多代表网络请求客户端的组件库,具有代表性的有下面三种: Apache 的 HTTP 客户端组件 HttpClient. Jav ...
- Android之解剖网络请求框架Volley
转载请标明出处:[顾林海的博客] 个人开发的微信小程序,目前功能是书籍推荐,后续会完善一些新功能,希望大家多多支持! Volley介绍 Volley是Google推出的网络请求库,包含的特性有JSON ...
- Android中Http网络请求库框架Volley和Asnyc-http的使用---第三方库学习笔记(一)
Volley框架: 特点: 通信更快,更简单 Get,Post网络请求及网络图像的高效率异步处理请求. 当多个请求时,对网络请求进行排序,按优先级处理 当网络状况不好时,Volley可以自动对上次请求 ...
- antdpro使用AbortController取消请求
官方api地址:https://developer.mozilla.org/zh-CN/docs/Web/API/AbortController umi-request案例:https://githu ...
- axios 取消请求:CancelToken
目录 示例代码: 步骤操作: 优化取消请求(细化错误问题): 示例代码: axios 请求拦截器中使用取消请求: 示例代码: axios 批量发送请求: 注意:此方法(CancelToken),官方已 ...
- 一个整合OkHttp 、Retrofit 、Volley 、RxJava、Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决
一个整合OkHttp .Retrofit .Volley .RxJava.Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决 AndroidHttp 一个 ...
- Android - RxEasyHttp网络库请求数据
github源码地址:https://github.com/zhou-you/RxEasyHttp 请求数据 网络请求,采用链式调用,支持一点到底. 入口方法 /** * get请求 ...
- android危险权限分组,Android 6.0权限请求相关及权限分组方法
Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请. 权限分为3类,一组是Normal权限,无需申请,另一组是Dangerous,需申请,然后是特殊权限, ...
- Android中的HTTP请求
在Android 中发送HTTP请求的方式一般有两种,HttpURLConnection和HttpClient,下面介绍的是HttpURLConnection的使用方法. 1.定义xml文件 < ...
最新文章
- UVa 12012 - Detection of Extraterrestrial(hash)
- 为什么vs会输出一个框作为结果_检测与分类专辑 | 对精准目标检测的含不确定性的边界框回归...
- 【1】淘宝sdk装修入门引言
- LeetCode 1360. 日期之间隔几天(闰年判断)
- ghost后自动修改IP和计算机名的VBS脚本
- 合并table中某一列相邻的相同的行
- 基于matlab和lingo的数学实验,MATLAB和LINGO软件在数学建模竞赛中的应用-精选教育文档...
- 对“西刺免费代理IP“爬取、测试并存入MySQL
- 各种风格的Android面试题进来了解一下,面试必问
- 用户用户组,与密码管理,su,sudo命令,限制root远程登陆
- CSD-1371电力监控系统网络安全监测装置(Ⅱ 型)介绍
- 数据爬取-奇技淫巧系列1——抓取隐藏在CDN,防爬代理等服务后面的数据
- 【免杀前置课——Windows编程】五、窗口控件——什么是控件、Windolws 窗口两大类、Windows标准控件/通用控件、控件响应的接收、创建窗口制作不同控件
- 科研必备的12个网站
- 腾讯内部转岗_如何一句话证明你在腾讯工作过
- 电话号码正则表达式!
- Antlr4在win10下的环境配置
- yb3防爆电机型号含义_YBK3/YB3/YBX3-160M2-2-15KW防爆电机参数详解
- QGIS 3D:三维DEM数据加载渲染漫游
- bash-sed命令
热门文章
- 计算机控制实验2,计算机控制系统实验报告 (2)
- mfc怎么获取进程的线程数_2020年大厂喜欢这样问线程安全,这些知识点我整理好了
- python 队列实现_Python Queue队列实现线程通信
- Web Components 入门
- android旋转缩放布局,Android学习笔记(一):双指缩放及旋转计算
- camunda流程定义表无数据_【经验】数据可视化分析操作指南
- python建模 决策_决策树python建模中的坑 :ValueError: Expected 2D array, got 1D array instead:...
- python获取日期_python 获取日期
- 微型计算机接口与技术答案,微型计算机接口技术与应用习题答案(刘乐善).doc
- 卷积滤波 英文_图像处理必备英文词汇