2012-09-17 4 views
0

2 개의 활동이 미디어 플레이어 스트림을 시작하는 주된 활동이고, 활동 2를 시작한 다음 현재 활동을 마칩니다() Activity # 1의 작업이 완료되었습니다 이 시점에서 뮤직 플레이어는 아무런 문제가 없습니다. 그러나 Activity # 2가 열리면 약 5 초 동안 미디어 플레이어가 작동 한 다음 중지됩니다. Activity # 2에서는 종료 버튼과 처리기의 도움으로 루프에서 실행되는 AsyncTask 만 있습니다.Mediaplayer는 새로운 활동에서 5 초 후에 멈 춥니 다.

+0

아마 문제와 관련이 없지만 활동 2를 열기 전에 활동 1에서 완료를 호출하는 이유는 무엇입니까? 액티비티 2를 열어야하며, 사용자가 디바이스의 뒤로 버튼을 사용하여 액티비티 2를 닫게하면 액티비티 1이 앞쪽으로 돌아옵니다. 마감 및 종료 액티비티는 응용 프로그램의 예상 탐색 흐름을 수동으로 중단합니다. – jlindenbaum

+3

코드를 게시하여 볼 수 있습니다. –

+1

@jlindenbaum : 'Activity'에서'finish()'를 호출하는 것은 올바른 이유, 즉'Activity'로 다시 돌아오고 싶지 않은 한 완벽하게 받아 들일 수 있습니다. – Squonk

답변

5

나는 활동 1의 MediaPlayer가 finish()이므로 메모리에서 지워지고 있다고 생각합니다. MediaPlayer 인스턴스는 첫 번째 Activity의 일부입니다. 이 문제를 해결할 수있는 유일한 방법은 활동 2에서 새 MediaPlayer을 시작하거나 백그라운드에서 모든 미디어를 처리하는 Service을 만드는 것입니다. 두 번째 방법을 사용하면 한 MediaPlayer 인스턴스가 모든 활동을 통해 계속 재생되며 명령을 보내면됩니다.

+0

알기에 이것은 내 시나리오에 맞는 것 같습니다. 이 두 가지 방법 중 하나의 예가 제시 되었습니까? 고맙습니다. – kabuto178

+1

지금하는 일과 크게 다르지 않습니다. 첫 번째 방법은 'Intent'에 'Bundle'을 보내서 어떤 사운드가 재생되고 있는지, 볼륨 등을 알려주도록 요청할 수 있습니다. 두 번째 방법은 다음과 유사합니다. http://marakana.com/forums/android/ examples/60.html – DeeV

+0

다시 한번 감사 드리며, 제 정복에 도움이되었습니다! 롤, 내 상황에서 도움이되었다 답변을 승인 – kabuto178

관련 문제