AsyncTask将List返回给Activity

Hei*_*erg 6 android android-asynctask android-activity

如何将AsyncTask中生成的List返回给Activity?

我的LoadStringsAsync类:

public class LoadStringsAsync extends AsyncTask<Void, Void, List<String> > {

    List<String> str;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        ...
    }

    @Override
    protected List<String> doInBackground(Void... arg0) {
        ...
        get content from the internet
        and
        fill the list
        ...
    }

    @Override
    protected void onPostExecute(List<String> str) {
        super.onPostExecute(events);
        ...

    }
}
Run Code Online (Sandbox Code Playgroud)

我需要在我的Activity中使用List才能使用它.(不仅仅是在ListView中显示它:P)

有什么建议怎么做?:-)

谢谢到目前为止!

wts*_*g02 9

你的活动:

public class YourActivity extends Activity {
    private List<String> list = new ArrayList<String>();

    public void onCreate(Bundle state) {
        //...
    }

    public void setList(List<String> list) {
        this.list = list;
    }

    private void fireYourAsyncTask() {
        new LoadStringsAsync(this).execute();
    }

}    
Run Code Online (Sandbox Code Playgroud)

AsyncTask:

public class LoadStringsAsync extends AsyncTask<Void, Void, List<String>> {

    List<String> str;
    private YourAcitivity activity;

    public LoadStringsAsync(YourAcitivity activity) {
        this.activity = activity;
    }

    @Override
    protected List<String> doInBackground(Void... arg0) {
    }

    @Override
    protected void onPostExecute(List<String> str) {
        super.onPostExecute(events);
        activity.setList(str);
    }
}
Run Code Online (Sandbox Code Playgroud)