专栏名称: 安卓开发精选
伯乐在线旗下账号,分享安卓应用相关内容,包括:安卓应用开发、设计和动态等。
目录
相关文章推荐
复利大王  ·  00后新观念!与男朋友保持非婚姻长期关系 ·  6 小时前  
复利大王  ·  手握25w华子股票,躺平了 ·  6 小时前  
复利大王  ·  520怀孕事件? ·  6 小时前  
复利大王  ·  王石最新朋友圈 ·  昨天  
鸿洋  ·  2025 Google I/O 带来的 ... ·  2 天前  
51好读  ›  专栏  ›  安卓开发精选

Android 网络编程(4): 从源码解析Volley(上)

安卓开发精选  · 公众号  · android  · 2016-08-21 08:50

正文

请到「今天看啥」查看全文


));

}

}

BasicNetwork network1 = new BasicNetwork (( HttpStack ) stack );

RequestQueue queue1 ;

if ( maxDiskCacheBytes 1 ) {

queue1 = new RequestQueue ( new DiskBasedCache ( cacheDir ), network1 );

} else {

queue1 = new RequestQueue ( new DiskBasedCache ( cacheDir , maxDiskCacheBytes ), network1 );

}

queue1 . start ();

return queue1 ;

}


可以看到如果android版本大于等于2.3则调用基于HttpURLConnection的HurlStack,否则就调用基于HttpClient的HttpClientStack。并创建了RequestQueue,调用了start()方法:


public void start () {

this . stop ();

this . mCacheDispatcher = new CacheDispatcher ( this . mCacheQueue , this . mNetworkQueue , this . mCache , this . mDelivery );

this . mCacheDispatcher . start ();

for ( int i = 0 ; i this . mDispatchers . length ; ++ i ) {

NetworkDispatcher networkDispatcher = new NetworkDispatcher ( this . mNetworkQueue , this . mNetwork , this . mCache , this . mDelivery );

this . mDispatchers [ i ] = networkDispatcher ;

networkDispatcher . start ();

}

}


CacheDispatcher是缓存调度线程,并调用了start()方法,在循环中调用了NetworkDispatcher的start()方法,NetworkDispatcher是网络调度线程,默认情况下mDispatchers.length为4,默认开启了4个网络调度线程,也就是说有5个线程在后台运行并等待请求的到来。接下来我们创建各种的Request,并调用RequestQueue的add()方法:


public Request add ( Request request ) {

request . setRequestQueue ( this );

Set var2







请到「今天看啥」查看全文


推荐文章
复利大王  ·  手握25w华子股票,躺平了
6 小时前
复利大王  ·  520怀孕事件?
6 小时前
复利大王  ·  王石最新朋友圈
昨天
心情聊伤话  ·  你累吗?累,就看看……
8 年前
中国经济网  ·  四维世界的照片,太震撼了!丨推广
7 年前
三文娱  ·  三文娱团队需要几个实习生
7 年前