volley
使用場景:數(shù)據(jù)量不大的但是通信頻繁的場景基茵。不適合大文件下載佑吝。
volley是對HttpURLConnection和HttpClient的封裝
目前已經(jīng)不用添加依賴同步敛滋,可直接使用
工作流程:主線程、緩存線程和網(wǎng)絡線程
1.在主線程請求加入隊列
2.緩存線程查詢請求是否有緩存洲赵,如果有緩存且可用,則緩存中獲取數(shù)據(jù)解析返回給主線程出刷,沒有則發(fā)給網(wǎng)絡線程
3.網(wǎng)絡線程發(fā)送請求,從服務器獲取數(shù)據(jù)坯辩,解析返回給主線程馁龟。
StringRquest
JsonObjectRequest
JsonArrayRequest
ImageRequest
每一個新的請求隊列,都會默認創(chuàng)建五個子線程漆魔。
volley通過Volley.newRequsetQueue創(chuàng)建請求對象RequestQueue
初始化磁盤緩存坷檩,創(chuàng)建請求對象,初始化網(wǎng)絡請求的線程池改抡,創(chuàng)建分發(fā)器矢炼。
對象創(chuàng)建完成后會調(diào)用start方法啟動請求隊列
默認四個網(wǎng)絡請求的線程,一個緩存線程阿纤,先去緩存線程中查看有沒有句灌,沒有則阻塞,網(wǎng)絡線程去請求處理欠拾,并將結果添加進緩存隊列胰锌。
RequsetQueue對象的add方法將請求加入請求隊列并發(fā)送
未完待續(xù)。藐窄。资昧。。荆忍。格带。