RequestFuture<Long> future = RequestFuture.newFuture(); AuthenticatedJsonRequest request = new AuthenticatedJsonRequest(Method.GET,ServiceUrl,null,future,future); requestQueue.add(request); try { Long response = future.get();
但代码在这里永远阻止:
Long response = future.get();
这是我的@R_301_6942@JsonRequest
public class AuthenticatedJsonRequest extends JsonRequest<Long> { public AuthenticatedJsonRequest(int method,String url,String requestbody,Listener<Long> Listener,ErrorListener errorListener) { super(method,url,requestbody,Listener,errorListener); // Todo auto-generated constructor stub } @OverrIDe public Map<String,String> getheaders() throws AuthFailureError { Map<String,String> headers = new HashMap<String,String>(); String creds = String.format("%s:%s",RestClIEnt.Username,RestClIEnt.Password); String auth = "Basic " + Base64.encodetoString(creds.getBytes(),Base64.DEFAulT); headers.put("Authorization",auth); return headers; } @OverrIDe protected Response<Long> parseNetworkResponse(NetworkResponse response) { try { String JsonString = new String(response.data,httpheaderParser.parseCharset(response.headers)); return Response.success(Long.valueOf(JsonString),httpheaderParser.parseCacheheaders(response)); } catch (UnsupportedEnCodingException e) { return Response.error(new ParseError(e)); } }
我调试了凌空代码,它在Networkdispatcher中停止
//从队列中获取请求.
request = mQueue.take();解决方法 这个问题很老,但是没有任何回应.
我会尝试为其他人写一个响应有同样的问题,我相信这里的问题是你从主线程运行未来,并且默认用户线程这个线程执行响应.
Future在他的代码中等待,如果你从主线程运行它你正在停止这个线程,并且响应处理程序线程永远不会执行它,对于这个问题,这仍然在等待.
总结以上是内存溢出为你收集整理的android – 凌空同步请求永远阻止全部内容,希望文章能够帮你解决android – 凌空同步请求永远阻止所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)