2013-02-13 3 views
1

여러 활동을 위해 배경 음악을 재생할 때 사용하는 서비스가 있습니다. 지금은 모든 적절한 활동을 통해 재생되지만 홈 버튼을 누르면 종료 할 수 없습니다. 게임은 종료되지만 음악은 계속 재생됩니다. onUserLeaveHint 메서드를 사용하여 시도했지만 다른 작업으로 전환 할 때마다 음악이 종료됩니다. 내가 게임을 떠날 때뿐만 아니라.홈 버튼을 눌렀을 때 어떻게 서비스를 중지합니까?

+0

작품 100 % 나를 위해 .... 시도해보십시오 .... 시도해보십시오 .... http://stackoverflow.com/a/14135323/2489384 –

답변

0

모든 활동이 서비스에 바인딩되어야합니다. 서비스는 하나 이상의 활동이 바인드 된 경우에만 살아 있기 때문입니다. 따라서 서비스에 바인딩이 없으면 서비스가 삭제됩니다. 이 answer 서비스 바인딩/바인딩 해제 방법을 확인하십시오. starservice()을 사용하지 마십시오. 서비스를 중지하려면 stopservice()를 호출해야합니다. bindservice()을 사용하십시오.이 경우 서비스에서 onCreate() 만 호출됩니다.

0

파편을 사용하고 있습니까? 프래그먼트를 사용하려는 경우 주 활동의 onStop() 메소드에서 오디오 서비스를 중지 할 수 있습니다. 앱 조각을 사용하고 싶지 않거나 사용할 수 없으면 각 활동의 onStop()에서 서비스를 중지하거나 각 활동에서 브로드 캐스트 리시버를 구현해야합니다. how-to-get-broadcastreceiver-for-action-android-intent-action-main-and-android

0

활동에서 다른 것으로 전환하는 동안 두 번째 onStart()가 다른 활동의 onStop()보다 먼저 호출된다는 사실을 이용하십시오.

BIND_AUTO_CREATE 플래그와 결합 서비스가 더 결합 된 활동이 없습니다 때마다 파괴된다는 사실과 함께 (이 다른 answer 확인), 점을 감안, 당신은) (ONSTART 모든 사용자의 활동에 서비스에 방법을 결합하고있는 바인딩을 해제 할 수 있습니다 onStop().

액티비티 전환이있을 때마다 활성 액티비티 액티비티가 있지만 현재 활동이 배경으로되어있을 때 (집 전화 또는 수신 통화로 인해) onStop() 만 호출되고 서비스가 언 바운드됩니다.

관련 문제