как добраться до AsyncTask

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
Hummer_hard
Сообщения: 12
Зарегистрирован: 06 апр 2015, 15:36

как добраться до AsyncTask

Сообщение Hummer_hard » 07 май 2015, 18:01

Уважаемые форумчане нужен совет, достаточно просто подсказать в какую сторону капать

У меня есть сервис гарантирующий стабильную работу AlarmManager, который в свою очередь через определенные промежутки времени генерирует событие BroadcastReceiver запускающие задачу в AsyncTask.

Доступна возможность запустить эту же задачу по кнопке из Activity.

Внимание вопрос:
Как проверить существует ли уже запущенный AsyncTask, если он был запущен AlarmManager-ом и повторно пытаюсь запустить по кнопке.
AsyncTask реализован как сингелтон.
Сервис живет в отдельном процессе.

Как добраться до AsyncTask?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: как добраться до AsyncTask

Сообщение KamiSempai » 08 май 2015, 10:57

Тут лучше запускать сервис и уже в нем запускать AsyncTask. Тогда через этот сервис можно будет понять выполняется задача или нет.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Hummer_hard
Сообщения: 12
Зарегистрирован: 06 апр 2015, 15:36

Re: как добраться до AsyncTask

Сообщение Hummer_hard » 08 май 2015, 17:04

KamiSempai писал(а):Тут лучше запускать сервис и уже в нем запускать AsyncTask. Тогда через этот сервис можно будет понять выполняется задача или нет.
Период между AsyncTask может быть до суток работы максимум на 2 минуты держать все это время запущенный сервис кажется не целесообразно или ты имеешь в виду запускать еще один сервис по событие AlarmMenedgera?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: как добраться до AsyncTask

Сообщение KamiSempai » 08 май 2015, 17:53

Еще один сервис. По его активности можно понять, что работа запущена.
И еще, при повторном запуске сервиса новый не запустится, а пошлется команда в уже существующий. Таким образом запрет на одновременную работу 2-х задач можно сделать в самом сервисе и просто не запускать новый AsyncTask если предыдущий уже выполняется.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Hummer_hard
Сообщения: 12
Зарегистрирован: 06 апр 2015, 15:36

Re: как добраться до AsyncTask

Сообщение Hummer_hard » 12 май 2015, 11:09

Спасибо за подсказку, думаю это самое правильное решение.

Ответить