2009-11-14 5 views
4

내 응용 프로그램은 원격 서비스를 사용하여 오디오를 재생합니다. 이렇게하면 오디오 재생을 소유 한 활동이 없습니다. 사용자가 하나의 활동에서 재생할 일부 오디오를 트리거 할 수 있으며 오디오가 앱 주위를 탐색하면서 계속 재생됩니다 ( ). 그렇지만 서비스가 사용자가 앱을 내리거나, 디스플레이를 잠 그거나, 홈으로 치면 오디오를 일시 중지하거나 재생을 중지하라고 말하고 싶습니다. 앱이 하나의 활동 일 때 onPause에서이 작업을 수행했습니다. 따라서 필자는 본질적으로 응용 프로그램/작업 수준에서 "onPause"를 찾는 을 추측합니다. 그런 것입니까 존재합니까? 그렇지 않다면, 에 작업을 보류 중으로 통보하는 "모범 사례"방법은 무엇입니까? 퇴근 또는 홈 타격 중 하나를 사용자가 대기 상태로 두었습니까?Android : onPause의 작업 또는 응용 프로그램

답변

5

흠 ... 불행히도, 거기에는 쉬운 대답이 없을 것 같습니다. 내 생각에 빌트인 미디어 플레이어와 판도라가 알림을 사용하여 사용자가 앱을 닥치게하여 쉽게 닥치게 할 수 있다고 생각합니다.

액티비티 흐름이 상당히 선형 인 경우 응용 프로그램을 백 아웃하는 것은 초기 액티비티를 백 아웃하는 것과 같습니다.

하나의 시나리오에서 사용한 트릭은 onPause()onResume()에있는 각 활동에 서비스를 알리는 것이 었습니다. 이 서비스는이를 모니터링하고 어떤 경우에는 onResume()이없는 onPause()이있는 경우 사용자가 부재 한 것으로 가정합니다 (홈, 수신 전화, 수신 문자 메시지, 알림을 통해 일부 앱에 응답하는 등).).

ACTION_SCREEN_OFF 브로드 캐스트 Intents도 처리 할 수 ​​있습니다.

나는 더 나은 은색 응답이 없다는 것을 유감스럽게 생각합니다. 아마도 다른 누군가가 더 좋은 아이디어를 가지고있을 것입니다.

+0

이는 창의적인 솔루션입니다. 저는 비슷한 문제가 있습니다. 답이 맞으면 저에게 완벽한 해결책이 될 수 있습니다. 나는 ACTION_SCREEN_OFF와 함께 갈 수도 있습니다 ... 훌륭한 제안입니다. 다음 내용에 대한 의견을 보내주십시오. http://stackoverflow.com/questions/1735245/overriding-the-activity-task-behavior-in-android 감사합니다. – Rich

+0

죄송합니다. 활동 스택이 엉망이 아닙니다. – CommonsWare

+0

걱정할 필요가 없습니다. 내 솔루션은 당신이 제안한 것 (Pandora와 같은 알림 또는 서비스의 활동 상태를 유지하고 적절한 브로드 캐스트를 청취 함) 중 하나가 될 것입니다. – Rich

1

나는 다소 비슷한 상황에 처해 있었고, 본질적으로 나는 마크가 제안한 것을 수행했다. 별도의 통지가 아니라 단순히 registerCallback() 및 unregisterCallback() API에 대한 호출을 계산하도록했습니다. 각 활동은 어쨌든해야했습니다.