异步任务数据获取器

时间:2012-02-24 11:32:51

标签: android android-asynctask

我有一个扩展Asynctask的类。在这个类中,我有一个返回哈希映射的方法。如何在扩展Activity的不同类中获取此Hashmap。

有人给我一些参考代码吗?

1 个答案:

答案 0 :(得分:4)

您可以在Activity中创建一个侦听器,然后将此侦听器传递给AsyncTask。 AsyncTask完成后,您可以调用侦听器来设置Hashmap。所以在你的AsyncTask中创建你的监听器:

    public static interface MyListener {
        void setHashmap(Hashmap myHashmap);
    }

此外,还有一个设置你的监听器的功能:

    public void setListener(MyListener listener) {
        this.listener = listener;
    }

然后在onPostExecute中调用侦听器上的函数

    listener.setHashmap(myHashmap);

在您的活动中实现此侦听器:

    public class MyActivity extends Activity implements MyListener { ...


    public void setHashmap(Hashmap hashmap) {

        // do stuff here
        this.hash = hashmap
    }

然后最后设置你的监听器并启动你的AsyncTask:

    AsyncTask task = new MyAsyncTask();
    task.setListener(this);
    task.execute();

当然您也可以将AsyncTask放入Activity中,然后在onPostExecute中设置hashmap。