异步任务数据获取器

发布于 2025-01-08 20:06:35 字数 100 浏览 1 评论 0原文

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

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

I have one class that extends Asynctask. In this class I have a method that returns a hash map. How can I get this Hashmap in different class that extends Activity.

Anyone give me some reference code?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一身仙ぐ女味 2025-01-15 20:06:35

您可以在 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 中设置哈希图。

You can create a listener in your Activity, then pass this listener into your AsyncTask. Once the AsyncTask completes you can call the listener to set the Hashmap. So in your AsyncTask create your listener:

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

Also, have a function to set your listener:

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

Then in onPostExecute call the function on your listener

    listener.setHashmap(myHashmap);

In your activity implement this listener:

    public class MyActivity extends Activity implements MyListener { ...


    public void setHashmap(Hashmap hashmap) {

        // do stuff here
        this.hash = hashmap
    }

Then finally set your listener and start your AsyncTask:

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

Of course you could also just put your AsyncTask in your Activity then you can set the hashmap in onPostExecute.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文