2012-02-24 79 views
2

我有一个类扩展了Asynctask。在这个类中,我有一个返回哈希映射的方法。我怎样才能在扩展Activity的不同类中得到这个HashMap。异步任务数据获取器

任何人都给我一些参考码?

+3

张贴您的代码请 – Natali 2012-02-24 11:34:58

回答

4

您可以在您的活动中创建一个侦听器,然后将此侦听器传递到您的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您的活动,那么你可以设置onPostExecute HashMap中。

+0

+1一个很好的答案。 – 2012-03-22 04:59:13