我有一个问题如下:我必须从android中获取一些来自mysql的数据,为此我用php做,但因为我使用android 4.0通过AsyncTask
。问题是我不知道如何返回结果arraylist
。
答案 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对象的所有字段。