2016-11-22 96 views
0

我遇到了一個我正在構建的片段的問題。基本上,現在我想要做的就是檢查在片段內部何處以及如何進行http請求調用。Android調試器跳轉片段方法

到目前爲止,當我運行的代碼沒有調試器一切正常,日誌功能。但是,當我試圖一步一步地完成任何事情時,我什麼也得不到。然後調試器從運行在call.enqueu方法中的代碼部分跳轉到方法聲明的末尾。我使用的代碼如下,請注意,這個過程在從一個活動運行而不是從一個片段中運行,這使得我相信這個問題出現在我的片段實現中。

爲異步requestÑ的方法:

public void testAsyncCreate() { 

OkHttpClient client = new OkHttpClient(); 

RequestBody body = RequestBody.create(CREATE_MEDIA_TYPE, "data={\"process\":\"12222\", \"phone\":\"1111111\"}"); 

Request request = new Request.Builder() 
     .url(ALLWAYS_API) 
     .post(body) 
     .build(); 

Call call = client.newCall(request); 

call.enqueue(new Callback() { 
    @Override 
    public void onFailure(Call call, IOException e) { 

    } 

    @Override 
    public void onResponse(Call call, Response response) throws IOException { 
     // any additional runnable items go in here 
     try { 


      String jsonData = response.body().string(); // the exception is caught at this point 
      Log.d("<Mensajes>",jsonData); 
      extractCreate = parseExtractCreateDetails(jsonData); 
      if(response.isSuccessful()) { 
        extractCreate = parseExtractCreateDetails(jsonData); 
        getActivity().runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          Log.d("<=====>", "check"); 
          Log.d(TAG, "Is this even working?"); 


         } 
        }); 
       } 
      //getStops(jsonData); 

     }catch(IOException e) { 

     }catch (JSONException e){ 

     } 


    } 
}); 
} // end of asyncCreate 

什麼我無法理解日誌是如何工作的,但我從沒有調試信息。 Fragments內部有處理這類事情的具體方法嗎?是否在其他地方處理它們,例如調用Fragment的活動?如果是的話,這將如何傳遞給Fragment活動?

回答

0

排隊使得後臺線程的請求......它停在裏面得到response.It需要一定的時間後響應或失敗的斷點,並依賴於互聯網和幾件事情所花費

+0

你會說時間這種情況下通常還有其他的慣例嗎?如果不推薦在ui線程中處理請求,我寧願改變它。 –

+0

排隊方法本身在後臺線程上運行。這就是爲什麼後面的中斷點會被調用。響應或失敗內的斷點將在接收到響應時調用。 –