我试图创建一个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(); } } }
解决方法
不太可能首先调用onPostExecute(),并且更有可能在doInBackground()中抛出异常..以及为什么不打印Log 2.检查LogCat中的警告或调试页面.此外,您应该分别打印两个例外.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。