有时在AsyncTask中返回值为null
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有时在AsyncTask中返回值为null相关的知识,希望对你有一定的参考价值。
我通过调用一个简单的选择查询来获得JSON格式的值。我正在使用AsyncTask
。问题是有时它工作正常,但有时response_value
是null而没有任何改变。我该怎么办?我错过了什么?
doInBackground(String... strings)
的代码
URL url = new URL(GetUrl.URL_MAIN_CATEGORIES_DATA);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "iso-8859-1"));
String response_value = "";
String line = "";
while ((line = bufferedReader.readLine()) != null) {
response_value += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return response_value;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
答案
尝试在catch块中记录异常,而不是打印堆栈跟踪。
Log.e("Yourtag","Exception occurred",e);
你必须得到一个异常,但你无法在android上看到堆栈跟踪。这是它有时可以工作的唯一方式,有时则不会。
以上是关于有时在AsyncTask中返回值为null的主要内容,如果未能解决你的问题,请参考以下文章