Сборщик данных асинхронных задач - PullRequest
2 голосов
/ 24 февраля 2012

У меня есть один класс, который расширяет Asynctask. В этом классе у меня есть метод, который возвращает хэш-карту. Как я могу получить этот Hashmap в другом классе, который расширяет Activity.

Кто-нибудь дает мне некоторый ссылочный код?

1 Ответ

4 голосов
/ 24 февраля 2012

Вы можете создать слушателя в своей деятельности, а затем передать его в свою 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...