最近在做一个音乐播发器,我把播放音乐这个功能写在一个服务里,再和播放的界面进行绑定,注意是BindService而不是StartService。当我播放界面finish()后并且按理说服务也自动销毁了,但是音乐仍在播放,我用的是MediaPlayer类播放的音乐,不知道为什么,求大神告知。
学习是最好的投资!
완료되기 전에 unBind를 호출했나요?
이 서비스에 바인딩된 다른 활동이 있는 한 BindService는 삭제되지 않습니다. 모든 활동이 unbound()을 호출할 때까지 기다려야 삭제될 수 있습니다.
unbound()
서비스 수명주기 다이어그램
실제 경험은 활동의 unBound() 전에 서비스에 메시지를 보내 활동이 바인딩 해제될 것임을 서비스에 알리는 것입니다. 이 블로그 게시물에는 몇 가지 소스 코드와 Android BoundService 프로세스 간 통신에 대한 소개가 있습니다. 🎜>
현재 재생 인터페이스만 바인딩되어 있고 미디어 플레이어는 서비스에 출시되지 않습니다. 하지만 논리적으로 말하면 내 활동이 종료되고 바인딩된 서비스가 파괴되었으므로 해당 서비스의 미디어 플레이어도 파괴되어야 합니다.
완료되기 전에 unBind를 호출했나요?
이 서비스에 바인딩된 다른 활동이 있는 한 BindService는 삭제되지 않습니다. 모든 활동이
unbound()
을 호출할 때까지 기다려야 삭제될 수 있습니다.서비스 수명주기 다이어그램
실제 경험은 활동의 unBound() 전에 서비스에 메시지를 보내 활동이 바인딩 해제될 것임을 서비스에 알리는 것입니다. 이 블로그 게시물에는 몇 가지 소스 코드와 Android BoundService 프로세스 간 통신에 대한 소개가 있습니다. 🎜>
또한 서비스의 onDestroy에서 Mediaplayer가 release()를 호출하나요?현재 재생 인터페이스만 바인딩되어 있고 미디어 플레이어는 서비스에 출시되지 않습니다. 하지만 논리적으로 말하면 내 활동이 종료되고 바인딩된 서비스가 파괴되었으므로 해당 서비스의 미디어 플레이어도 파괴되어야 합니다.