編輯:關於Android編程
/** Number of network request dispatcher threads to start. */ private static final int DEFAULT_NETWORK_THREAD_POOL_SIZE = 4;
public RequestQueue(Cache cache, Network network) { this(cache, network, DEFAULT_NETWORK_THREAD_POOL_SIZE); }
Network network = new BasicNetwork(stack); RequestQueue queue = new RequestQueue(new DiskBasedCache(cacheDir), network); queue.start();
if (stack == null) { if (Build.VERSION.SDK_INT >= 9) { stack = new HurlStack(); } else { // Prior to Gingerbread, HttpUrlConnection was unreliable. // See: http://android-developers.blogspot.com/2011/09/androids-http-clients.html stack = new HttpClientStack(AndroidHttpClient.newInstance(userAgent)); } }
DefaultHttpClient和它的兄弟AndroidHttpClient都是HttpClient具體的實現類,它們都擁有眾多的API,而且實現比較穩定,bug數量也很少。但同時也由於HttpClient的API數量過多,使得我們很難在不破壞兼容性的情況下對它進行升級和擴展,所以目前Android團隊在提升和優化HttpClient方面的工作態度並不積極。
HttpURLConnection是一種多用途、輕量極的HTTP客戶端,使用它來進行HTTP操作可以適用於大多數的應用程序。雖然HttpURLConnection的API提供的比較簡單,但是同時這也使得我們可以更加容易地去使用和擴展它。不過在Android 2.2版本之前,HttpURLConnection一直存在著一些令人厭煩的bug。比如說對一個可讀的InputStream調用close方法時,就有可能會導致連接池失效了。那麼我們通常的解決辦法就是直接禁用掉連接池的功能。Android 2.3版本之前HttpURLConnection存在bug不建議使用,而在Android 2.3版本及以後,HttpURLConnection則是最佳的選擇。它的API簡單,體積較小,因而非常適用於Android項目。壓縮和緩存機制可以有效地減少網絡訪問的流量,在提升速度和省電方面也起到了較大的作用。
目前來說,我們有一個更好的請求選擇okhttp,volley源碼中並沒有封裝它的請求,我們可以自己實現HttpStack接口,在performRequest使用okhttp請求。OkHttp 相較於其它的實現有以下的優點:支持SPDY,允許連接同一主機的所有請求分享一個socket。 如果SPDY不可用,會使用連接池減少請求延遲。 使用GZIP壓縮下載內容,且壓縮操作對用戶是透明的。 利用響應緩存來避免重復的網絡請求。 當網絡出現問題的時候,OKHttp會依然有效,它將從常見的連接問題當中恢復。 如果你的服務端有多個IP地址,當第一個地址連接失敗時,OKHttp會嘗試連接其他的地址,這對IPV4和IPV6以及寄宿在多個數據中心的服務而言,是非常有必要的。使用 OkHttp 作為替代是一個很好的選擇。
Volley 其實是一個生產者和消費者系統,調用方是生產者,而Volley是消費者。調用方通過RequestQueue 生產Request,而Vollery 消費Request 從而得到Response。那麼負責調配這些生產者和消費者的就是Dispatcher,分別是Cache 和 Network 的Dispatcher。
問題的起源在項目裡,有時候需要實現一個圖片輪播的效果,用來展示Banner。同時,圖片能循環播放,下面還有一排小圓點來指示當前輪播到哪一頁了。如下圖:分析· 圖片的個數是
在上一篇《Android仿微信滑動彈出編輯、刪除菜單效果、增加下拉刷新功能》裡,已經帶著大家學習如何使用SwipeMenuListView這一開源庫實現滑動列表彈出菜單,
今天學習的新內容是側滑導航欄,我想大家肯定都比較熟悉了,因為這個效果在qq裡面也有,最近一直跟室友們玩的游戲是快速讓自己的頭像的點贊量上千。當然我的效果跟qq是沒有辦法比
有的時候,android在展示數據的時候,需要保留兩位小數: 之前用的一個方法: 比如把米轉換為km,然後保留兩位小數顯示: float distan