Я использую фоновый сервис (с уведомлением в строке состояния), который выполняет аудиосэмпл каждый час.
Почему бы не использовать AlarmManager
, чтобы вы не занимали столько памяти? Пользователям действительно не нравятся вечные услуги.
Странное поведение происходит ночью, когда кажется, что телефон переходит в состояние ожидания: события трансляции больше не обрабатываются.
Конечно.
У вас есть идеи о том, как решить эту проблему?
Используйте AlarmManager
и WakefulIntentService
. Запланируйте AlarmManager
для вызова вашего приложения каждый час (в идеале через setInexactRepeating()
). Попросите WakefulIntentService
получить ваш образец. Если вы будете следовать задокументированному рецепту WakefulIntentService
, устройство будет бодрствовать достаточно долго, чтобы вы могли получить образец, а затем снова заснет. Ваш сервис не останется в памяти все время. Вы получаете свою функциональность, а пользователь получает лучшую производительность устройства.
Do NOT просто используйте WakeLock
, чтобы ваше приложение не только постоянно потребляло память, но и постоянно работало ЦП.