2016-11-22 51 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

排队方法本身在后台线程上运行。这就是为什么后面的中断点会被调用。响应或失败内的断点将在接收到响应时调用。 –