android volley request 有对相应数据进行hander 处理吗

android volley request 有对相应数据进行hander 处理吗,第1张

有hander机制的,来完成主要的异步 *** 作 原生开发中抛开AsyncTask,只有hander机制能显示子线程对于UI线程的 *** 作

1volley只适应于8也就是22以上的版本,因为其中使用了androidhttpclient

2volley工作原理:

下面这图是volley的工作原理:

其核心为requestqueue,在其中包含一个CacheDispatcher和若干个networkDispatcher。所有的下载任务都在一个优先级队列中维护,然后会发到cacheQueue,CacheDispatcher不断盯着cacheQueue,进行任务处理,其中的细节见3若没得到cache,讲任务假如到networkQueue,networkDispatcher不断盯着networkQueue,进行网络请求,其中的细节见4。不管在cacheDispatcher还是networkDispatcher,若得到response,发出给listener接听到。

3cacheDispatcher工作细节

此处用到了本地的文件缓存此处设计借鉴了浏览器的缓存设计。会读取response的header请求,根据header的内容设置缓存的过期时间。缓存文件分为两部分,第一部分为存储缓存的头,第二部分就是缓存的实际内容。在读取缓存时,会根据头部过期时间的设置,判断是否需要再发出网络请求。

4networkDispatcher工作细节

此处是网络请求,这块有两个关键类,一个是BasicNetwork,一个是httpStack。 basicNetwork中包含了httpstack,在httpstack中进行网络请求,然后basicNetwork对得到的response进行了parse和加入文件缓存等工作处理,最后在此处发出response,由listener接收。

5处理

在上文中是volley一般的工作原理,根据的特点,volley中还有三个特殊的类 NetworkImageView,ImageLoader和ImageRequest对做了一些特殊处理。

ImageRequest在doparse中结合和控件特点,对bitmap生成进行大小缩放,以达到清晰

和占用更少内存的目的

ImageLoader是加载的helper,其中有个两个map,flightRequest和BatchResponse,flight的主要目的对每个request进行唯一性确认,使其不再重复生成,而且在控件显示不回出现错图的情况。batch response则是在收到厚发给listen时控制,这样也可以再此处取消请求,加快加载速度

NetworkImageView继承与Imageview,主要结合了ImageLoader可以异步展示网络,同时在detach时取消网络请求。

以上就是关于android volley request 有对相应数据进行hander 处理吗全部的内容,包括:android volley request 有对相应数据进行hander 处理吗、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10146847.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存