我如何从AsyncTask返回一个arraylist?

时间:2012-12-11 12:50:44

标签: php android mysql android-asynctask

我有一个问题如下:我必须从android中获取一些来自mysql的数据,为此我用php做,但因为我使用android 4.0通过AsyncTask。问题是我不知道如何返回结果arraylist

2 个答案:

答案 0 :(得分:2)

您可以创建interface,将其传递给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);
    }
}

答案 1 :(得分:1)

一种方便的方法是在您的Activity类中使AsyncTask成为匿名类。然后在onPostExecute方法中,您可以从创建AsyncTask的方法访问属于Activity + final对象的所有字段。