3

我有一个问题如下:我必须从 android 的 mysql 中获取一些数据,为此我使用 php 来完成,但是由于我使用 android 4.0,所以通过AsyncTask. 问题是我不知道如何返回结果arraylist

4

2 回答 2

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);
    }
}
于 2012-12-11T12:52:05.333 回答
1

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

于 2012-12-11T13:02:00.060 回答