Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 为什么onPostExecute在doInBackground在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();
        }
    }
}

解决方法

不太可能首先调用onPostExecute(),并且更有可能在doInBACkground()中抛出异常..以及为什么不打印Log 2.检查LogCat中的警告或调试页面.此外,您应该分别打印两个例外.

大佬总结

以上是大佬教程为你收集整理的android – 为什么onPostExecute在doInBackground在AsyncTask中完成之前执行全部内容,希望文章能够帮你解决android – 为什么onPostExecute在doInBackground在AsyncTask中完成之前执行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。