Пишу приложение в котором постоянно работает в фоне сервис. Активити есть, но предполагается, что пользователь его закрывает на длительное время. Суть проблемы: в некоторое время от сервера приходит информация, которую обрабатывает фоновый сервис. Обработав, надо с помощью AlarmManager'а поставить на выполнение через какое-то время задачу. Например, через час вывести оповещение. Не могу понять как это реализовать, прошу помощи. С андроидом знаком неделю.
Ура, Ура, Наконец-то гугл будет закапывать таких говнописателей, у которых "постоянно работает в фоне сервис"! Да! Я даже готов почитать немного документацию и сделать как надо, буде мне это понадобится. Скорее бы Андроид О!
Алексей Гриченко: недопонимаю как его вызвать в сервисе. AlarmManager должен быть в отдельном классе или его объявлять прямо в сервисе итп. Много примеров вызова из активити, из сервиса нашел мало
Денис Загаевский: т.е. плееры не работают в фоне? Или разработчики плееров говнописатели? Надеюсь во время вашего обучения вам оказывали достаточно помощи...
Sarclin: нормальные плееры имеют статус процесса Foreground, поскольку показывают нотификацию.
Вот это вот ваше "от сервиса приходит", "надо поставить задачу" - называется push notifications, JobScheduler.
Денис Загаевский: если бы я уже разобрался со всем, то не стал бы задавать здесь вопрос. Понимаю, читать еще и читать, но лучшее обучение - комбинированное. Тем более у знающих людей
Sarclin: Activity - это контекст. Service - тоже контекст. Так что разницы нет. Как раз сохранять контекст в одном месте и использовать в другом - плохой подход. Надо всегда брать текущий, актуальный.
Просто this (т.е. сам сервис). Не надо брать ни BaseContext, ни ApplicationContext. Так что мой пример выше должен выглядеть так:
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);