精华内容
下载资源
问答
  • Volley

    2019-09-27 15:07:25
    Volley的介绍: Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。 Volley从服务器端请求字符串数据,图片数据,和JSON格式数据。Volley可以写出标准化的模板代码...

     Volley的介绍:

    Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。

    Volley从服务器端请求字符串数据,图片数据,和JSON格式数据。Volley可以写出标准化的模板代码,并让我们更加关注于我们的业务逻辑,这对于我们的App来说是非常重要的。

    Volley 的特点:

    Volley 的主要特点

    •  自动的调度网络请求
    •  多并发的网络请求
    •   可以缓存http请求
    •  支持请求的优先级
    •  支持取消请求的API,可以取消单个请求,可以设置取消请求的范围域。
    •  代码标准化,使开发者更容易专注于我们的业务的逻辑处理
    •  更容易给UI填充来自网络请求的数据
    •  Volley可以是作为调试和跟踪的工具
    • 扩展性强。Volley 中大多是基于接口的设计,可配置性强。
    • 一定程度符合 Http 规范,包括返回 ResponseCode(2xx、3xx、4xx、5xx)的处理,请求头的处理,缓存机制的支持等。并支持重试及优先级定义。
    • 默认 Android2.3 及以上基于 HttpURLConnection,2.3 以下基于 HttpClient 实现
    • 提供简便的图片加载工具。

    Volley的优缺点:

    特别适合数据量小,通信频繁的网络操作。不适合大的文件流操作,例如上传和下载。因为Volley会把所有的服务器端返回的数据在解析期间缓存进内存。大量的下载操作可以考虑用DownLoaderManager和异步加载来实现。

    Volley的工作原理

          为了发送一个请求,你可以通过构造方法new出来一个Request,然后调用add()把请求添加进RequestQueue中,当调用add方法时,Volley会运行一个缓存处理线程和一个网络调度线程池.如果请求被缓存线程已经缓存的话,请求将不会放进请求队列,也就是说不会发出Http请求。而会直接复用请求,并将数据返回到主线程。如果缓存线程中没有缓存到请求的话,请求将会放进请求队列,网络请求成功后, 请求将会被缓存进cache,接着网络调度线程将处理该请求,并解析数据。

    如何取消请求

       Volley通过调用cancel()方法取消一个请求,并保证请求不会在Response中回调处理,你可以在activity中的onStop中取消所有你想取消的请求,最简单的方法就是给所有想取消的请求调用setTag(TAG)设置标记,然后放进请求队列,在Activity的onStop方法中调用cancelAll(TAG)方法取消请求。

     

     

    转载于:https://www.cnblogs.com/czh-/p/5761480.html

    展开全文
  • volley

    2019-04-22 07:50:57
    package stsfan.... import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import com.android.volley.AuthFailureError; import com.android.v...

    package stsfan.com.mvpdome.net;

    import android.content.Context;
    import android.net.ConnectivityManager;
    import android.net.NetworkInfo;

    import com.android.volley.AuthFailureError;
    import com.android.volley.Request;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.StringRequest;
    import com.android.volley.toolbox.Volley;

    import java.lang.reflect.Method;
    import java.util.Map;

    import stsfan.com.mvpdome.myapp.MyApp;

    /**

    • @copyright: zhidu
    • @author fanyanlong
    • @email 326445811@qq.com
    • @versions: V1.0.1
    • @data: 2019/4/16
    • @description:HttpVolley
      *Volley的Get和Post请求方式的使用
      */

    public class HttpVolley

    {
    private static Context context;
    private static HttpVolley httpVolley;
    //private static HttpVolley httpVolley=new HttpVolley();
    **

    /*//饿汉式

    **
    public static HttpVolley getInstance(){
    return httpVolley;
    }

    */

    **
    

    public boolean isNetworkConnected(Context context)

    ** {
    if (context != null) {
    ConnectivityManager mConnectivityManager = (ConnectivityManager) context
    .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
    if (mNetworkInfo != null) {
    return mNetworkInfo.isAvailable();
    }
    }
    return false;
    }

    //懒汉式
    public static synchronized HttpVolley getInstance(){
        if(httpVolley==null){
            httpVolley = new HttpVolley();
        }
        return httpVolley;
    }
    //get 请求
      public void VolleyHttpGet(String url, final VolleyCallBack callBack){
    
       StringRequest stringRequestget=  new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                callBack.onSuccess(response);
    
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
             callBack.onFail(error);
            }
        });
          //设置请求的Tag标签,可以在全局请求队列中通过Tag标签进行请求的查找
          stringRequestget.setTag("testPost");
          //将请求加入全局队列中
          MyApp.getHttpVolley().add(stringRequestget);
      }
    
     // post请求
     public void  VolleyHttpPost(String url, final Map<String,String> map, final VolleyCallBack callBack){
          StringRequest stringRequestpost=   new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
                 @Override
                 public void onResponse(String response) {
                     callBack.onSuccess(response);
                 }
             }, new Response.ErrorListener() {
                 @Override
                 public void onErrorResponse(VolleyError error) {
                     callBack.onFail(error);
    
                 }
             }){
                 @Override
                 protected Map<String, String> getParams() throws AuthFailureError {
                     return map;
                 }
             };
    

    //设置请求的Tag标签,可以在全局请求队列中通过Tag标签进行请求的查找
    stringRequestpost.setTag(“testPost”);
    //将请求加入全局队列中
    MyApp.getHttpVolley().add(stringRequestpost);

     }
     // 定义接口
    

    **public interface VolleyCallBack{

    void onSuccess(String data);

    void onFail(VolleyError error); }**

    }

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,422
精华内容 4,168
关键字:

volley