Выполнение метода, хотя деятельность приостановлена?

Я создаю небольшое приложение, которое получает данные о батарее (через BatteryManager), и когда уровень заряда батареи достигает 100%, он издает звук пользователю каждые 5 секунд, чтобы он знал, что батарея полностью заряжена.

Проблема в том, что когда приложение останавливается, поток, издающий звук, тоже останавливается. Есть ли способ сохранить эту ветку? Я тоже читал об услугах, но не знаю, подходит ли это для такой простой вещи. Используя сервис, я полагаю, что я мог бы отслеживать уровень заряда батареи и издавать звук в сервисе.

Может ли кто-нибудь прокомментировать "хороший путь" для достижения этой цели?

Заранее спасибо.

3 ответа

Решение

Использовать Service определенно. Не забудьте объявить это в манифесте так же, как ваши действия. Что касается звука, который вы играете, SoundPool предназначен для воспроизведения коротких аудиофайлов, таких как игровые эффекты или звуки уведомлений. Для воспроизведения музыкальных файлов используйте MediaPlayer,

Сервис - это хорошее решение. Другим способом решения этой проблемы было бы задание повторяющихся сигналов http://developer.android.com/training/scheduling/alarms.html каждые 5 секунд для запуска вашего кода.

Сервис - лучшая вещь для этого. и играть звук в качестве фона в нем.

Другие вопросы по тегам