Cronet Request生命周期

了解Cronet创建的请求(Request)的生命周期,

学习如何使用回调函数(Callback)管理这些生命周期。

生命周期概述

Cronet库创建的网络请求使用UrlRequest类来描述。理解UrlRequest的生命周期的一些非常重要的概念如下:

  • 状态(State): 状态是请求在某一时间进入的特定条件。在生命周期中,Cronet库创建的UrlRequest 对象在不同状态之间切换。请求生命周期状态包括:初始化状态、多种过度状态和终止状态。
  • 行为方法 UrlRequest methods: 客户端请求在不同状态可以调用不同的方法。这些方法可以将一个状态切换到另一个状态。
  • 回调函数 Callback methods:通过实现UrlRequest.Callback类的方法,你的APP可以与请求的进度保持一致,也可以通过实现这些回调函数调用请求的行为方法,将一个状态切换到另一个状态。

下面列表描述了UrlRequest生命周期的流程:

  1. APP调用started()函数后,生命周期处于开始状态(Started)。
  2. 服务端调用发送链接跳转响应后,进入onRedirectReceived()回调函数。在这个函数中可以执行两个行为函数: a. 调用followRedirect(),然后重新进入开始状态(Started)。 b. 调用cancel(),进入onCanceled()函数,app在请求进入已取消(Canceled )状态之前还可以执行其他的操作。
  3. ​​​当app所有url跳转执行完后,服务端发送响应头信息,onResponseStarted()函数会被调用。请求进入等待读Waiting for read() )状态。app应该调用read()方法读取响应体。read()方法调用后,进入读取中状态(Reading),然后可能会遇到下面集中情况:
  • 读取行为完成,还有更多数据可读时:onReadCompleted()会被调用,然后再次进入等待读状态Waiting for read())。app应该执行read()继续读响应体。app也可以执行cancal()函数停止读取。
  • 读取行为完成,没有更多数据可读时:onSucceeded()会被调用,请求进入最终的完成(Succeeded)状态。
  • 读取行为出错时:onFailed会被调用,然后请求进入最终的出错(Failed)状态。

下表展示了UrlRequest对象的整个生命周期:

cronet-lifecycle

其中:

说明

原文地址:

https://developer.android.com/guide/topics/connectivity/cronet/lifecycle#overview

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值