Volley详解(五)——网络(Network)

本文介绍了Volley网络库中的核心类Network、BasicNetwork、NetworkDispatcher的功能及其实现原理。包括Network作为网络请求接口的角色,BasicNetwork作为其默认实现的具体工作流程,以及NetworkDispatcher如何管理和分发网络请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

本篇介绍网络相关的类,包括NetworkBasicNetworkNetworkDispatcher


Part 1 ——Network

表示网络请求的接口,只有一个方法,用于发起网络请求:

public NetworkResponse performRequest(Request<?> request) throws VolleyError;

Part 2 ——BasicNetwork

Volley中Network接口的默认实现。维护了两个主要成员:

  • HttpStack mHttpStack:执行网络请求的接口,返回HttpResponse
  • ByteArrayPool mPool:用于临时数据的读写和暂存

mHttpStack发起网络请求,返回HttpResponse,根据StateCode,对缓存做相应的处理,然后将结果封装成NetworkResponse并返回。


Part 3 ——HttpStack

执行网络请求的接口,有两个实现类:

  • HurlStack:由HttpUrlConnection实现,API 9及以上默认使用该类。
  • HttpClientStack:由AndroidHttpClient实现,API 9以下默认使用该类。

Part 4 ——NetworkDispatcher

网络分发线程,继承了Thread,维护了网络请求队列mNetworkQueue,缓存mCache,响应分发对象mDelivery等,负责从网络请求队列mCacheQueue中依次获取请求并进行处理,如果队列为空,则阻塞,直到队列不为空。

对于获取到的每个Request,调用mNetwork发起网络请求,将返回的请求结果NetworkResponse转化为Response<T>,加入缓存,最后交给mDelivery做回调处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值