<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 目錄 [TOC] NoHttp的核心還是同步請求,本章要講的異步請求也是基于[同步請求](http://doc.nohttp.net/222861)的。 NoHttp的異步請求是在同步請求的基礎上用`任務隊列` + `Handler`實現的,如果你想更好的理解NoHttp,更好的使用隊列的特性,[強烈建議看這里](http://doc.nohttp.net/222881)。 # 異步請求的步驟 1、創建隊列([隊列特性講解點我](http://doc.nohttp.net/222881)) ```java RequestQueue queue = NoHttp.newRequestQueue(); ``` 2、創建請求 ```java Request<String> request = new StringRequest(url); // 添加url?key=value形式的參數 request.add("enName", "yanzhenjie"); request.add("zhName", "嚴振杰"); request.add("website", "http://www.yanzhenjie.com"); ``` 3、添加請求到隊列 ```java ... queue.add(0, request, new OnResponseListener<String>(){ @Override public void onSucceed(int what, Response<String> response) { if(response.responseCode() == 200) {// 請求成功。 String result = response.get(); } } @Override public void onFailed(int what, Response<String> response) { Excepition exception = response.getException(); if(exception instanceof NetworkError) {// 網絡不好。 } // 這里還有很多錯誤類型,可以看demo: https://github.com/yanzhenjie/NoHttp ... } @Override public void onStart(int what) { // 這里可以show()一個wait dialog。 } @Override public void onFinish(int what) { // 這里可以dismiss()上面show()的wait dialog。 } }); ``` 這里對其中`queue.add(what, request, listener)`中的`what`做個說明,任意添加多個請求到隊列時,使用同一個Listener接受結果,listener的任何一個方法被回調時都會返回在添加請求到隊列時寫的相應what值,可以用這個what來區分是哪個請求的回調結果,你可以理解為它的作用和`handler`的`what`一樣的作用,就是用來區分信號來源的。 這樣做的好處是不像其它框架一樣,每個請求都`new listener()`來接受結果,這樣及省了代碼量,又讓代碼更加整潔。 當然如果你不想這么用,那么你可以每個請求都`new listener()`。 # 對于隊列使用的建議 創建一個隊列應該多次使用,因為每創建一個隊列,就會創建指定`并發值`個線程,如果創建太多隊列就會耗資源,所以我們要把隊列封裝成單例模式,強烈建議你請看這篇文檔:[隊列特性講解](http://doc.nohttp.net/222881)。 **推薦閱讀** [隊列的詳解和封裝](http://doc.nohttp.net/222881) [同步請求](http://doc.nohttp.net/222861)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看