日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Volley

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Volley 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • 簡介
  • 特點
  • 使用
    • 網絡請求隊列的建立與取消
    • Get與Post請求方式
      • Get請求方式
      • Post請求方式
    • 與Activity的生命周期相關聯
    • 網絡圖片加載
    • 網絡圖片加載并緩存

簡介

Volley意為齊射、并發的意思,是Google在2013年發布的Android平臺上的網絡通信庫



特點

  • 網絡通信更快,更簡單(高效地Get、Post請求方式)
  • 網絡圖片加載與緩存
  • 請求排序(建立了請求隊列)
  • 多級別取消請求
  • 可以與Activity的生命周期進行關聯

注意:不適合數據的上傳與下載



使用

網絡請求隊列的建立與取消

MyApplication.java

package com.example.demo;import android.app.Application; import com.android.volley.RequestQueue; import com.android.volley.toolbox.Volley;/*** 創建全局的請求隊列*/ public class MyApplication extends Application {public static RequestQueue mRequestQueue;@Overridepublic void onCreate() {super.onCreate();mRequestQueue = Volley.newRequestQueue(getApplicationContext());}public static RequestQueue getRequestQueue(){return mRequestQueue;} }


Get與Post請求方式

有三個請求對象StringRequest、JsonObjectRequest、JsonArrayRequest,其中StringRequest包含了另外兩個對象


Get請求方式

/*** 使用StringRequest發送Get請求 */ String url = "http://xxx/get?name=zhangsan&sex=male"; StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {@Overridepublic void onResponse(String s) {}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError volleyError) {}}); request.setTag("Get"); MyApplication.getRequestQueue().add(request);


/*** 使用JsonObjectRequest發送Get請求 */ String url = "http://xxx/get?name=zhangsan&sex=male"; JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject jsonObject) {}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError volleyError) {}});request.setTag("Get"); MyApplication.getRequestQueue().add(request);


Post請求方式

/*** 使用StringRequest發送Post請求 */ String url = "http://xxx"; StringRequest request = new StringRequest(Request.Method.POST,url,new Response.Listener<String>(){@Overridepublic void onResponse(String s) {}},new Response.ErrorListener(){@Overridepublic void onErrorResponse(VolleyError volleyError) {}}){/**** 用戶在使用Post請求方式中參數的傳遞*/@Overrideprotected Map<String, String> getParams() throws AuthFailureError {Map<String,String> hashMap = new HashMap<>();hashMap.put("name","zhangsan"); hashMap.put("sex","male");return hashMap;} }; request.setTag("Post"); MyApplication.getRequestQueue().add(request);


/*** 使用JsonObjectRequest發送Post請求 */ String url = "http://xxxx"; HashMap<String,String> hashMap = new HashMap<>(); hashMap.put("name","zhangsan"); hashMap.put("sex","male"); JSONObject object = new JSONObject(hashMap);JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, object, new Response.Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject jsonObject) {}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError volleyError) {}});request.setTag("Post"); MyApplication.getRequestQueue().add(request);



與Activity的生命周期相關聯

/*** 將Volley與Activity的生命周期進行關聯*/@Overrideprotected void onStop() {super.onStop();/*** 通過給定的TAG值,將指定的隊列全部關閉*/MyApplication.getRequestQueue().cancelAll("Post");}



網絡圖片加載

String url = "https://www.baidu.com/img/bdlogo.png"; ImageRequest request = new ImageRequest(url, new Response.Listener<Bitmap>() {@Overridepublic void onResponse(Bitmap bitmap) {}}, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError volleyError) {}});request.setTag("Get"); MyApplication.getRequestQueue().add(request);



網絡圖片加載并緩存

package com.example.demo;import android.graphics.Bitmap; import android.util.LruCache;import com.android.volley.toolbox.ImageLoader;public class BitmapCache implements ImageLoader.ImageCache {LruCache<String,Bitmap> cache;int max = 10*1024*1024;public BitmapCache(){cache = new LruCache<String,Bitmap>(max){@Overrideprotected int sizeOf(String key, Bitmap value) {return value.getRowBytes()*value.getHeight();}};}@Overridepublic Bitmap getBitmap(String s) {return cache.get(s);}@Overridepublic void putBitmap(String s, Bitmap bitmap) {cache.put(s,bitmap);} }

方式一

String url = "https://www.baidu.com/img/bdlogo.png";ImageLoader imageLoader = new ImageLoader(MyApplication.getRequestQueue(),new BitmapCache());ImageListener listener = ImageLoader.getImageListener(iv,R.drawable.default,R.drawable.error) imageLoader.get(url,listener);

方式二

String url = "https://www.baidu.com/img/bdlogo.png";ImageLoader imageLoader = new ImageLoader(MyApplication.getRequestQueue(),new BitmapCache());NetworkImageView networkImageView=(NetworkImageView)findViewById(R.id.img); networkImageView.setDefaultImageResId(R.drawable.default); networkImageView.setErrorImageResId(R.drawable.error); networkImageView.setImageUrl(url,imageLoader);

總結

以上是生活随笔為你收集整理的Volley的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。