从图中,我们看到,Volley主要由两部分组成:
- 网络请求对象(记录请求信息,请求状态:请求中、取消、请求成功)
- 网络请求队列(用于将请求入队,判断是否有缓存、执行网络请求,将结果派发到UI线程)
思路很简单,首先创建一个缓存处理线程,一个网络请求线程池,两个队列,分别存放缓冲请求和网络请求。当需要进行网络请求时,首先将请求加入缓存请求队列。缓存处理线程不断的从这个请求中取队列,如果本地存在缓存,则将结果派发到UI线程中;如果发现本地没有缓存,将这个请求加入网络请求队列。网络请求线程池,不断的从网络请求队列中取队列,开始执行网络请求,并将结果派发到UI线程中。在派发中,判断是否已经被用户取消了,如果取消了,就停止派送。
网友评论