Проверить, вызывается ли onStop из-за взаимодействия с пользователем или затемнения экрана

У меня есть медиаплеер, который прекращает воспроизведение всякий раз, когда пользователь закрывает приложение, нажимая кнопку «Домой» или «Назад», или просто открывая другое приложение. Чтобы добиться такого поведения, я добавил к своему основному действию onStop () , который сообщает моему MediaPlayer (находящемуся в службе) прекратить воспроизведение музыки.

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

Прямо сейчас проигрыватель также прекращает воспроизведение, когда экран тускнеет, а это означает, что тогда также вызывается метод onStop ().

Как я могу проверить, вызывается ли onStop () при затемнении экрана?

Я уже применил PARTIAL_WAKELOCK к моему объекту MediaPlayer , который, насколько мне известно, должен позволить проигрывателю продолжать работать после выключения экрана.

Мне нужно добавить частичную блокировку пробуждения и к моему основному действию?


Просто применил PARTIAL_WAKELOCK как к моему основному действию, так и к моему медиаплееру.Прямо сейчас экран больше не выключается сам по себе, и когда пользователь нажимает кнопку питания, музыка по-прежнему останавливается.

Очевидно, это не работает так, как я думал.

Есть ли способ добиться желаемого поведения?

6
задан Sander van't Veer 25 January 2012 в 12:30
поделиться