文档章节

当Activity关闭后,网络请求回调的处理

shzwork
 shzwork
发布于 10/14 18:00
字数 549
阅读 13
收藏 0

当我们在使用网络请求的时候,一般都是通过回调来获取请求到的数据。对于网络请求的回调需要注意的几个点

  1. 比如我们的回调在Activity中处理数据,当我们把Activity关闭后,如果获取到数据时,就算我们的Activity被finish回调还是会执行,那么这个时候我们在回调里所做的一些操作,很可能会造成程序的错误。所以我们需要在回调的时候判断下Activity是否finish.

    isFinishing()//判断当前的Activity是否关闭,如果活动结束,返回true,否则返回false。
  2. 在一个Activity或Fragment发起网络请求的时候,当我们关闭界面后,需要把发出的请求给取消掉,也就是说当我们发出一个请求的时候,数据还没有获取到我们又进入了新的界面,发起了一个新的请求,当请求多起来的时候就会出现阻塞的现象,比如:年级筛选,商品分类等这些请求都是会出现这种情况的

  3. 这里说下很多的时候别太相信服务器返回的数据,反正我是被坑过,所以我们尽量对获取到的数据进行判断

我目前的几个项目都是使用volley,取消请求的时候可以通过tag来取消,下面是取消请求的代码

 
  1. /**

  2. * 取消某个标示的所有请求,一般取消某个界面的所有请求

  3. *

  4. * @param tag 标示请求从哪个界面而来,方便界面退出后取消请求

  5. */

  6. public void cancelAll(final String tag) {

  7. getRequestQueue().cancelAll(new RequestFilter() {

  8. @Override

  9. public boolean apply(Request<?> request) {

  10. boolean compareBool = false;

  11. if (!TextUtils.isEmpty(tag)) {

  12. Object objTag = request.getTag();

  13. if (null != objTag) {

  14. compareBool = tag.equalsIgnoreCase(objTag.toString());

  15. }

  16. }

  17. return compareBool;

  18. }

  19. });

  20. }

本文转载自:https://blog.csdn.net/wangyingtong/article/details/51819103

shzwork

shzwork

粉丝 15
博文 870
码字总数 18444
作品 0
厦门
私信 提问
Android之okhttp实现socket通讯(非原创)

文章大纲 一、okhttp基础介绍 二、socket通讯代码实战 三、项目源码下载 四、参考文章 一、okhttp基础介绍 https://www.jianshu.com/p/e3291b7808e7 二、socket通讯代码实战 1. 添加依赖和权...

故事爱人
06/11
0
0
Android线程模型和AsyncTask

android 的线程模型:当一个 android 的应用运行后,就会有一个 UI 的 main 线程启动 , 这是一个非常重要的线程,它负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与 an...

蜗牛TT
2012/11/06
338
0
Android 线程模型和 AsyncTask

android 的线程模型:当一个 android 的应用运行后,就会有一个 UI 的 main 线程启动 , 这是一个非常重要的线程,它负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与 an...

华宰
2011/07/27
17.2K
8
Android Camera模块解析之拍照

最近学习Android的camera模块,本文先介绍一下camera2的api,然后给出android camera拍照的例子,讲解一下camera 拍照的原因知识,与大家共勉。 camera2 介绍 android camera拍照功能介绍 一...

天王盖地虎626
07/21
28
0
Activity经典实例二:启动其他Activity并返回结果

概述: 如果启动另一个Activity,并且希望返回结果给当前的Activity,那么可使用startActivityForResult()方法,在这种情况下,也是通过Bundle来进行数据交换的。 为了获取到被启动的Activit...

Xushao
2012/09/06
4K
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7 部署 redis 5.0.6 集群

环境 操作系统: CentOS7.7,关闭 firewalld 和 selinux Redis: 5.0.6 master 实例 10.0.4.110:6371 10.0.4.110:6372 10.0.4.110:6373 slave 实例 10.0.4.111:6371 10.0.4.111:6372 10.0.4.1......

俊赛潘安-才比管乐
17分钟前
22
0
怎么录制电脑上视频素材的声音

随着短视频的不断发展人们越来越喜欢利用空闲时间观看一些短视频用以打发零碎的时间,不少人发现这个机遇也匆匆走上制作短视频的道路,在制作短视频时配音是至关重要的,那你知道怎么在视频素...

cenfeng123
26分钟前
4
0
[springboot 开发单体web shop] 6. 商品分类和轮播广告展示

商品分类&轮播广告 因最近又被困在了OSGI技术POC,更新进度有点慢,希望大家不要怪罪哦。 上节 我们实现了登录之后前端的展示,如: 接着,我们来实现左侧分类栏目的功能。 商品分类|Produc...

IsaacZhang
26分钟前
3
0
java 静态代码块,代码块,构造方法执行顺序

回顾一下java的执行顺序 public class Demo { public Demo() { super(); System.out.println("this is Demo"); } static { System.out.println("this is static"); } { System.out.println("......

漫步行者
45分钟前
7
0
滴滴面试题答案思路

1.mysql 1.1.介绍下介绍下innodb的索引类型、数据结构 普通索引,唯一索引,主键索引:也就是聚簇索引,全文索引(FULLTEXT),聚集索引,非聚集索引等。 数据结构B+树: B+树特点 1.矮胖型,...

指尖Coding
48分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部