Okhttp页面结束同时终结该页面的请求,防止内存泄漏及报错
来源:互联网 发布:oracle 大数据 编辑:程序博客网 时间:2024/05/16 01:59
首先找到OKHttp的任务序列List所在类,Dispatcher
查询可得该类是OKHttpClient类下属性
封装后通过tag取消任务的方法
public void cancelTag(Object tag){ for (Call call : mOkHttpClient.dispatcher().queuedCalls()) { if (tag.equals(call.request().tag())) { call.cancel(); } } for (Call call : mOkHttpClient.dispatcher().runningCalls()) { if (tag.equals(call.request().tag())) { call.cancel(); } }}
找个类存放这个方法用于拿到OkHttpRequestBuilder
private static GetBuilder getBuilder;
public static GetBuilder getBuilder(){ if (getBuilder == null){ getBuilder = OkHttpUtils.get(); } return getBuilder;}
在页面父类,生命周期开始,调用接口前,加入该页面tag,以类名或自定义
getBuilder().tag(this.getLocalClassName());
在父类结束的生命周期onDestory中
@Overrideprotected void onDestroy() { super.onDestroy(); //xxx OkHttpUtils.getInstance().cancelTag(this.getLocalClassName());}
OKHttp与页面生命周期绑定便可以实现了
0 0
- Okhttp页面结束同时终结该页面的请求,防止内存泄漏及报错
- iOS,页面内button防止同时点击的解决方案
- MUI 请求的页面无法打开 viewgroup 报错
- 请求页面,获取该页面内容
- asp.net清除页面缓存,防止页面回退重复提交数据及防止同一用户同时登录
- 使用IFRAME引入页面导致IE内存泄漏的解决方案
- 使用IFRAME引入页面导致IE内存泄漏的解决方案
- struts2页面跳转及请求时的页面映射
- iis报错:404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
- svc 报错“由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。“
- 修改jsp导致tomcat访问该页面报错
- 非ajax请求下载,不刷新页面,防止页面直接打开的问题,安全下载
- 防止 _com_util::ConvertBSTRToString 引发的内存泄漏
- 怎么有效的防止内存泄漏
- 趁热!!!内存泄漏的检测、解决、防止
- 趁热!!!内存泄漏的检测、解决、防止
- Handler的正确使用,防止内存泄漏
- 防止 _com_util::ConvertBSTRToString 引发的内存泄漏
- Python 之 使用 PIL 库做图像处理
- Mysql数据库导入
- 蓝绿部署、A/B测试以及灰度发布
- Maven的pom.xml文件详解------Environment Settings
- Head First设计模式学习笔记-------(4.2)抽象工厂模式
- Okhttp页面结束同时终结该页面的请求,防止内存泄漏及报错
- iOS UIDevice 的基本数据
- [多线程] Web 项目中,少有涉及到的一次多线程编程的经验
- 关于WAMP中mysql服务突然不能启动的解决方案 橙色
- 一个shell脚本引发的(tomcat)血案
- Android开发常用的36个代码片段
- 新博客地址
- 第五届省赛javaA组- 循环节长度
- 好雨云帮一周问答集锦(2017.02.20-2017.02.26)