Вопрос

Мое приложение использует удаленную службу для воспроизведения аудио.Я делаю это для того, чтобы ни одно действие не владело воспроизведением аудио - пользователь может инициировать некоторое воспроизведение звука из одного действия, и звук будет продолжаться воспроизведение по мере навигации по приложению.Я, однако, хочу сказать службе приостанавливать или прекращать воспроизведение звука, когда пользователь "выгружает" приложение либо выполнив резервное копирование, заблокировав дисплей, либо нажав Home.Когда приложение было единственным действие, я делал это в режиме onPause.Итак, я предполагаю, что я по сути ищу "onPause" на уровне приложения / задачи.Существует ли такая вещь ?Если нет, то каков "наилучший практический" способ получения уведомления о том, что задача была приостановлена пользователем, либо поддерживающим все выход, либо возвращающимся домой?

Это было полезно?

Решение

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

Если поток ваших действий довольно линейен, то выход из приложения - это то же самое, что и выход из начального действия.

Трюк, который я использовал в одном сценарии, состоял в том, чтобы каждое действие уведомляло службу в onPause() и onResume().Служба будет отслеживать их, и если она получит onPause() без последующего onResume() предполагалось, что через какой-то промежуток времени пользователь ушел (ДОМОЙ, входящий телефонный звонок, входящее текстовое сообщение, ответ на какое-то приложение через уведомление и т.д.).

Вы также можете следить за ACTION_SCREEN_OFF трансляция Intents, чтобы справиться с этим сценарием.

Я сожалею, что у меня нет лучшего ответа "серебряной пули" - возможно, у кого-то другого будет идея получше.

Другие советы

Я был в чем-то похожей ситуации, и, по сути, я сделал то, что предложил Марк;Вместо отдельного уведомления я просто попросил службу подсчитать вызовы моих API registerCallback() и unregisterCallback(), которые каждое действие должно было выполнять в любом случае.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top