我正在构建一个正在构建的片段的问题。基本上,现在我要做的就是检查片段内的http请求调用的位置和方式。
到目前为止,当我在没有调试器的情况下运行代码时,一切正常并且日志确实起作用。但是,当我试图一步一步地审视所有事情时,我什么也得不到。调试器从在call.enqueu
方法上运行的代码部分跳转到方法声明的末尾。我正在使用的代码如下,请注意这个程序在从一个活动运行时非常有效,而不是一个让我相信问题在我的片段实现中的片段。
异步请求的方法Ñ:
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 :(得分:0)
enqueue在后台线程中发出请求...它在响应中的断点处停止响应或在获得响应后失败。它需要时间并依赖于因特网和一些事情所花费的时间