Volley框架解读(三)

原创 2015年07月09日 21:28:51

上一篇已经基本介绍了,几个重要的类,下面再说另外一个核心类

  • NetworkDispatcher
    @Override
    public void run() {
        Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
        Request<?> request;
        while (true) {
            try {
                // Take a request from the queue.
                request = mQueue.take();
            } catch (InterruptedException e) {
                // We may have been interrupted because it was time to quit.
                if (mQuit) {
                    return;
                }
                continue;
            }

            try {
                request.addMarker("network-queue-take");

                // If the request was cancelled already, do not perform the
                // network request.
                if (request.isCanceled()) {
                    request.finish("network-discard-cancelled");
                    continue;
                }

从队列中取出请求对象,这里捕获了中断异常,因为类中有quite方法,quite方法中调用了interrupt(),从而中断线程。

                addTrafficStatsTag(request);

                // Perform the network request.
                NetworkResponse networkResponse = mNetwork.performRequest(request);
                request.addMarker("network-http-complete");

                // If the server returned 304 AND we delivered a response already,
                // we're done -- don't deliver a second identical response.
                if (networkResponse.notModified && request.hasHadResponseDelivered()) {
                    request.finish("not-modified");
                    continue;
                }

                // Parse the response here on the worker thread.
                Response<?> response = request.parseNetworkResponse(networkResponse);
                request.addMarker("network-parse-complete");

                // Write to cache if applicable.
                // TODO: Only update cache metadata instead of entire record for 304s.
                if (request.shouldCache() && response.cacheEntry != null) {
                    mCache.put(request.getCacheKey(), response.cacheEntry);
                    request.addMarker("network-cache-written");
                }

                // Post the response back.
                request.markDelivered();
                mDelivery.postResponse(request, response);
首先设置套接字标记,主要是用于流量统计。然后直接网络连接,得到返回结果。如果这个结果没有被修改,同时已经被投递过,则finish这个请求,并跳出本次循环。把结果进行解析,判断是否需要缓存。接着标记这个请求已经被投递,然后发送结果。

Volley框架解析(七)-----Request解析

Volley框架解析(七)—–Request解析1. 前言(可直接无视跳过= =    ·一路过关斩将= =,从最顶层一路看代码,了解了request队列的调度程序,request结果的处理方式,以及...
  • Jing_Unique_Da
  • Jing_Unique_Da
  • 2015年09月20日 09:07
  • 1426

Volley 框架的介绍和使用

转载请标明出处:http://blog.csdn.net/u011546655/article/details/45921025一:volley 简介究竟什么是volley呢,在以前的开发过程中,我们...
  • u011546655
  • u011546655
  • 2016年03月11日 14:57
  • 7411

volley框架的解读

由于即将在项目中用到volley框架作为网络通信框架,所以把volley仔细看了一下。首先宏观角度讲下volley框架的大致结构 见下图:Created with Raphaël 2.1.0主线程缓冲...
  • xiong521hua
  • xiong521hua
  • 2017年02月14日 18:26
  • 203

Volley框架解读(二)

Volley.java中的newRequestQueue方法中有三个非常重要的类,今天先讲解RequestQueue类,它是框架的核心。...
  • congjianfei
  • congjianfei
  • 2015年06月30日 12:53
  • 320

Volley框架的基本解读(三)

上一篇Volley框架的基本解读(二)中,我们解析了NetworkDispatcher的run方法
  • zero_zero_zero_zero
  • zero_zero_zero_zero
  • 2016年05月24日 10:03
  • 284

网络框架 Volley 优缺点

Volley到底有哪些特点呢? 自动调度网络请求多个并发的网络连接通过使用标准的HTTP缓存机制保持磁盘和内存响应的一致支持请求优先级支持取消请求的强大API,可以取消单个请求或多个易于定制健壮性:...
  • jiankeufo
  • jiankeufo
  • 2017年02月05日 11:48
  • 1977

网络通信框架Volley使用详细说明

Volley主要提供获取JSON对象和图片加载功能。
  • xyz_lmn
  • xyz_lmn
  • 2013年10月06日 21:50
  • 110820

Volley框架深入分析

3.1 Volley流程图 Volley框架使用了线程池作为基础结构,主要分为主线程(UI线程)、CacheDispatcher线程和NetworkDispatcher线程。其中主线程和...
  • xc765926174
  • xc765926174
  • 2015年10月10日 19:32
  • 846

Android 网络通信框架Volley的二次封装

在android开发中不可避免地需要用到网络访问,多数情况下会使用HTTP协议来发送和接收网络数据。Android系统中主要提供了两种方式来进行HTTP通信:HttpURLConnection和Htt...
  • qq_20785431
  • qq_20785431
  • 2016年04月02日 18:31
  • 2860

Volley框架源码分析

Volley框架分析Github链接Volley框架分析Volley源码解析为了学习Volley的网络框架,我在AS中将Volley代码重新撸了一遍,感觉这种照抄代码也是一种挺好的学习方式.再分析Vo...
  • zinss26914
  • zinss26914
  • 2016年03月27日 15:43
  • 1946
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Volley框架解读(三)
举报原因:
原因补充:

(最多只允许输入30个字)