use*_*757 6 android android-asynctask
我试图创建一个AsyncTask来从服务器端获取一些数据.但是它在onPostExecute()的行中报告了一个Null指针异常"IOUtils.copy((response_.getEntity().getContent()),writer);" 我使用一些日志来查看发生了什么,发现日志1和3被打印但log 2没有.为什么在client.executed()完成之前执行了onPostExecute?有人可以给点建议吗?
private class GetForm extends AsyncTask<String, Integer, Object> {
private HttpResponse response_;
private Exception exception_;
private String url_;
public GetForm(String url) {
super();
url_ = url;
}
protected Object doInBackground(String... params) {
try {
Log.i("mylog","inside doInbackground 1.");
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url_);
response_ = client.execute(request);
Log.i("mylog","inside doInbackground 2.");
} catch (Exception e) {
exception_ = e;
}
return response_;
}
@Override
protected void onPostExecute(Object o) {
// Your current UI stuff here.
Log.i("mylog","inside onPostExecute 3.");
StringWriter writer = new StringWriter();
try{
IOUtils.copy((response_.getEntity().getContent()), writer);
......
}catch(IOException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
不太可能首先调用onPostExecute(),并且更有可能在doInBackground()中抛出异常..以及为什么不打印Log 2.检查LogCat中的警告或调试页面.此外,您应该分别打印两个例外.
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |