2015-10-14 79 views
0

我无法访问onpostexecute你知道为什么吗?我在我的系统日志中得到了这个Log.d("e", "response.");,然后它继续到另一个活动。我没有任何错误。代码不能继续以onpostexecute

OkHttpClient httpClient = new OkHttpClient(); 

String myJSON; 
JSONArray peoples = null; 
InputStream inputStream = null; 

@Override 
protected byte[] doInBackground(Void... params) { 
    Log.d("e", "dddddddddd"); 
    Log.d("e", Fetch_URL); 

    Request.Builder builder = new Request.Builder(); 
    builder.url(Fetch_URL); 

    Request request = builder.build(); 

    String result = null; 
    try { 

     // int statusCode = response.getStatusLine().getStatusCode(); 
     // int statusCode =200; 

     // HttpEntity entity = response.body().byteStream(); 
    // if (statusCode == 200) { 
     Response response = httpClient.newCall(request).execute(); 
     if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); 
     inputStream = response.body().byteStream(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) 
      { 
       sb.append(line + "\n"); 
      } 
      result = sb.toString(); 
      resulta = 1; //"Success 
      Log.d("e", "response."); 
      // return response.body().bytes(); 
    } catch (Exception e) { 
     Log.d("e", "r2r2 error"); 
     e.printStackTrace();  } 
    finally { 
     try{if(inputStream != null)inputStream.close();}catch(Exception squish){} 
    } 
    return null; 
} 

protected void onPostExecute(String result){ 
    if(resulta ==1){ 
     myJSON=result; 
     showList(); 
    } 
    else{ 
     Log.e("d","zzzzzzzz"); 

    } 
} 
+0

如果您在onPostExecute上面添加了@ @ Override,是否有编译时错误? – Blackbelt

+0

@MD它不是必须的。 – Blackbelt

+0

您的结果类型与'onPostExecute()'签名不匹配,因此未被调用。 –

回答

1

方法不重写子类 -

onPostExecute的签名不匹配您的AsyncTask子类的通用Result参数。这里

AsyncTask<Params, Progress, Result> 

Result是背景计算结果的类型。由于您的方法有一个String作为参数,您必须保持一致,并用String替换您声明的任何内容。

+0

正如你的答案是有帮助的,谢谢,我已经改变返回到字符串的结果,我改变字节[]字符串 – Moudiz

+0

不客气 – Blackbelt