android – 从AsyncTask类onPostExecute方法返回值

前端之家收集整理的这篇文章主要介绍了android – 从AsyncTask类onPostExecute方法返回值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好的,现在我有一个包含一些旋转器的类A,值将由扩展AsnycTask的B类填充,它从Web服务中获取微调值.在B类中,我设法检索值,在Toast中显示.现在的问题是如何将这些微调值重新传递给A类?

我试过了

Can OnPostExcecute method in AsyncTask RETURN values?

将A类传递给B类,并将该值存储在A类公共变量中,如下所示

@Override
protected void onPostExecute(String result)
{
  classA.classAvariable = result;
}

但是,无论何时我尝试阅读classAvariable我总是得到一个NullPointer异常.
似乎变量从未被分配给结果.
为了可读性,我需要分离B类,而不是使用内联类.

任何想法我的Java程序员?

解决方法

我想你正在设法读取A类变量之前.
尝试使用回调函数在回调函数中传递值并刷新您的旋转器.

您可以创建接口,将其传递给AsyncTask(在构造函数中),然后在onPostExecute中调用方法

例如:

你的界面:

public interface OnTaskCompleted{
    void onTaskCompleted(values);
}

你的活动:

public YourActivity implements OnTaskCompleted{
    //your Activity
    YourTask  task = new YourTask(this); // here is the initalization code for your asyncTask
}

和你的AsyncTask:

public YourTask extends AsyncTask<Object,Object,Object>{ //change Object to required type
    private OnTaskCompleted listener;

    public YourTask(OnTaskCompleted listener){
        this.listener=listener;
    }

    //required methods

    protected void onPostExecute(Object o){
        //your stuff
        listener.onTaskCompleted(values);
    }
}

猜你在找的Android相关文章