volley框架再識
阿新 • • 發佈:2018-12-04
Volley是一個HTTP庫,它使得在Android應用上訪問網路更簡單,更重要的是,更快。
多併發網路連線。
設定快取,清除快取
你可以取消單個請求,或者取消一些請求。
強大的排序功能,使的從網路非同步獲取資料並正確填入UI變得容易。
得到一個RequestQueue請求佇列時,就新增一個請求Request,Volley提供有三種請求的封裝,一個是StringRequest,一個事ImageRequest,還有一個是JsonRequest。
最後,呼叫RequestQueue的start方法就可以開始一條網路請求了。
這裡一個最核心的就是RequestQueue請求佇列這個了。
這個請求佇列是有兩個東西完成,一個是cache一個network。
這個RequestQueue的構造形式有四種:除了上面這兩個還有執行緒池數量,響應委派。
1,public RequestQueue(Cache cache, Network network, int threadPoolSize,ResponseDelivery delivery)
2, public RequestQueue(Cache cache, Network network, int threadPoolSize)
3,public RequestQueue(Cache cache, Network network)
其實Cache和Network真正的工作者還是CacheDispatcher快取排程和NetworkDispatcher網路排程。下期再詳細講解Dispatcher。。
RequestQueue的成員方法主要有下面幾個:
public void start();//請求佇列開始進行排程發vgm
public void stop();//佇列退出排程
public Request add(Request request);//新增一個請求,通過呼叫start()來執行
void finish(Request request);//這個方法應該是釋放請求資源的方法
public void cancelAll();//取消當前的請求
1.StringRequest是繼承Request<String> ,對應String的ResponseListener交付請求結果。
public StringRequest(int method, String url, Listener<String> listener,ErrorListener errorListener)
2.JsonRequest有JsonObjectRequest和JsonArrayRequest兩個子類,通過parseNetworkResponse(NetworkResponse response)來處理JsonObject和JsonArray兩個不同結果。
3.ImageRequest的構造引數比較多,主要針對圖片的一些處理工作。多了一個限制圖片最大長寬和configOptions圖片類的東西。
public ImageRequest(String url, Response.Listener<Bitmap> listener, int maxWidth, int maxHeight,Config decodeConfig, Response.ErrorListener errorListener)
Volley提供了一下的便利:
自動的網路請求排程。多併發網路連線。
設定快取,清除快取
你可以取消單個請求,或者取消一些請求。
強大的排序功能,使的從網路非同步獲取資料並正確填入UI變得容易。
Volley不適合繁重的下載或者流的操作,因為Volley會把解析到的響應資料保持在記憶體中。
先看一段下載網路圖片的程式碼
public class MainActivity extends Activity { String imageUrl = "http://zxpic.gtimg.com/infonew/0/wechat_pics_-6472427.jpg/640"; ImageView imView; ImageListener imagelistener; ImageLoader imageloaader; RequestQueue mQueue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imView=(ImageView) findViewById(R.id.tests); //通過Volley的靜態方法new一個請求佇列,再呼叫請求佇列(RequestQueue是由快取和網路執行緒構造的)的start方法。 mQueue=Volley.newRequestQueue(this); //第一個引數是存放下載圖片資源的物件imview,第二個是預設的圖片的資源ID,第三張是資源請求錯誤是給的圖片資源ID imagelistener=ImageLoader.getImageListener(imView, R.drawable.ic_launcher, R.drawable.ic_launcher); //第一個引數是The RequestQueue to use for making image requests. //第二個引數是設定快取的類 imageloaader= new ImageLoader(mQueue, new BitmapCache()); //得到圖片並載入 imageloaader.get(imageUrl, imagelistener); mQueue.start(); }
得到一個RequestQueue請求佇列時,就新增一個請求Request,Volley提供有三種請求的封裝,一個是StringRequest,一個事ImageRequest,還有一個是JsonRequest。
最後,呼叫RequestQueue的start方法就可以開始一條網路請求了。
這裡一個最核心的就是RequestQueue請求佇列這個了。
這個請求佇列是有兩個東西完成,一個是cache一個network。
這個RequestQueue的構造形式有四種:除了上面這兩個還有執行緒池數量,響應委派。
1,public RequestQueue(Cache cache, Network network, int threadPoolSize,ResponseDelivery delivery)
2, public RequestQueue(Cache cache, Network network, int threadPoolSize)
3,public RequestQueue(Cache cache, Network network)
其實Cache和Network真正的工作者還是CacheDispatcher快取排程和NetworkDispatcher網路排程。下期再詳細講解Dispatcher。。
RequestQueue的成員方法主要有下面幾個:
public void start();//請求佇列開始進行排程發vgm
public void stop();//佇列退出排程
public Request add(Request request);//新增一個請求,通過呼叫start()來執行
void finish(Request request);//這個方法應該是釋放請求資源的方法
public void cancelAll();//取消當前的請求
1.StringRequest是繼承Request<String> ,對應String的ResponseListener交付請求結果。
public StringRequest(int method, String url, Listener<String> listener,ErrorListener errorListener)
2.JsonRequest有JsonObjectRequest和JsonArrayRequest兩個子類,通過parseNetworkResponse(NetworkResponse response)來處理JsonObject和JsonArray兩個不同結果。
3.ImageRequest的構造引數比較多,主要針對圖片的一些處理工作。多了一個限制圖片最大長寬和configOptions圖片類的東西。
public ImageRequest(String url, Response.Listener<Bitmap> listener, int maxWidth, int maxHeight,Config decodeConfig, Response.ErrorListener errorListener)