2011-06-11 2 views
12

나는 주어진 활동 내에서 자동으로 그리고 연속적으로 mp3 파일을 재생하는 앱을 만들고있다. MediaPlayer에서 "oncompletion"이벤트를 수신하여 현재 mp3 재생이 완료된 시점을 알 수 있습니다.Android : 활동이 완료되었는지 확인하는 방법?

그러나 미디어가 재생되는 동안 뒤로 버튼을 눌러 시작 표시로 돌아 가면 활동이 여전히 실행 중입니다. "oncompletion"이벤트가 트리거되면 목록 활동 내에서보기에 액세스하려고 시도하고 널 포인터 예외시 충돌합니다.

활동이 더 이상 "활성"상태가 아니므로 통화가 다음 오디오를 재생하지 못하게 할 수있는 가장 좋은 방법은 무엇입니까?

답변

18

Stop 또는 onDestroy의 활동주기 방법에서 트리거하는 것을 시도하십시오. 자세한 내용은 this documentation을 확인하십시오.

사용자가 뒤로 버튼을 클릭하면 onStop이 트리거됩니다. 따라서 onStop에서 이벤트를 처리하십시오.

public void onStop() { 
//do your stuff here 
super.onStop() 
} 

결국 onDestroy가 호출되지만 반드시 뒤로 버튼을 클릭하자마자 호출됩니다.

+0

감사합니다. 난 그냥 onStop 메서드에서 플래그를 설정하고 수신기에서 확인하십시오. 그것은 매력처럼 작동했습니다. –

+1

일부 활동이이 활동 앞에 오면 onStop()이 트리거됩니다. 다시 듣고 싶으면 onBackPressed() 이벤트를 누르십시오. –