Android: задача или приложение, эквивалентное onPause - PullRequest
4 голосов
/ 14 ноября 2009

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

Ответы [ 2 ]

5 голосов
/ 14 ноября 2009

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

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

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

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

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

1 голос
/ 16 ноября 2009

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

...