Уважаемые форумчане нужен совет, достаточно просто подсказать в какую сторону капать
У меня есть сервис гарантирующий стабильную работу AlarmManager, который в свою очередь через определенные промежутки времени генерирует событие BroadcastReceiver запускающие задачу в AsyncTask.
Доступна возможность запустить эту же задачу по кнопке из Activity.
Внимание вопрос:
Как проверить существует ли уже запущенный AsyncTask, если он был запущен AlarmManager-ом и повторно пытаюсь запустить по кнопке.
AsyncTask реализован как сингелтон.
Сервис живет в отдельном процессе.
Как добраться до AsyncTask?
как добраться до AsyncTask
-
Hummer_hard
- Сообщения: 12
- Зарегистрирован: 06 апр 2015, 15:36
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: как добраться до AsyncTask
Тут лучше запускать сервис и уже в нем запускать AsyncTask. Тогда через этот сервис можно будет понять выполняется задача или нет.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
-
Hummer_hard
- Сообщения: 12
- Зарегистрирован: 06 апр 2015, 15:36
Re: как добраться до AsyncTask
Период между AsyncTask может быть до суток работы максимум на 2 минуты держать все это время запущенный сервис кажется не целесообразно или ты имеешь в виду запускать еще один сервис по событие AlarmMenedgera?KamiSempai писал(а):Тут лучше запускать сервис и уже в нем запускать AsyncTask. Тогда через этот сервис можно будет понять выполняется задача или нет.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: как добраться до AsyncTask
Еще один сервис. По его активности можно понять, что работа запущена.
И еще, при повторном запуске сервиса новый не запустится, а пошлется команда в уже существующий. Таким образом запрет на одновременную работу 2-х задач можно сделать в самом сервисе и просто не запускать новый AsyncTask если предыдущий уже выполняется.
И еще, при повторном запуске сервиса новый не запустится, а пошлется команда в уже существующий. Таким образом запрет на одновременную работу 2-х задач можно сделать в самом сервисе и просто не запускать новый AsyncTask если предыдущий уже выполняется.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
-
Hummer_hard
- Сообщения: 12
- Зарегистрирован: 06 апр 2015, 15:36
Re: как добраться до AsyncTask
Спасибо за подсказку, думаю это самое правильное решение.