2013-01-04 3 views
0

몇 가지보기를 통해 사용자를 데려온 후 오디오를 재생하는 앱이 있습니다. 처음에는 오디오가 재생되는 동안 backbutton이 눌러 졌을 때를 제외하고는 모두 정상적으로 작동했습니다.이 시점에서 앱은 닫히지 만 오디오는 계속 이어졌습니다. 연구를 마친 후 OnDestroy 메서드를 적용하고 오디오 재생 중에 뒤로 버튼을 누르면 미디어 플레이어가 해제됩니다.백 플레이어를 누를 때 OnDestroy를 호출하면 미디어 플레이 어가 해제됩니다.

그러나 Mediaplayer가 시작되기 전에 이전보기 중 하나에서 뒤로 버튼을 누르면 강제 종료 메시지가 표시되고 logcat에 작업을 삭제할 수 없음이 표시됨 - 공개 할 미디어 플레이어가 없어서 가정합니다. 아무도 무슨 일이 일어나고 있는지 알고 있습니까?

미디어가 재생 중일 때만 super.OnDestroy에 if 문을 시도했지만 아무 효과가 없습니다.

+0

아무 코드도 보지 않고 말할 수 없습니다. 당신의'MediaPlayer' 참조가'null'이거나'MediaPlayer' 인스턴스가 당신이하려는 일을하는 '유효한'상태가 아니라고 생각합니다. – Squonk

답변

0

사용자가 Mediaplayer을 해제하려고 시도했지만 사용자가 노래를 재생하지 않는 경우 초기화하지 않았 으면 예외가 발생한다는 의미입니다.

종종 값이 null인지 확인하는 것이 중요합니다. 한 가지 더 : onDestroy에서이 케이스를 처리하지 마십시오. 가능한 경우 onStop을 호출하는 것이 보장되지 않으므로 처리하지 마십시오.

+0

예. 나는 nullpointerexception을 얻고 있다고 생각합니다. ' 미디어 플레이어를 시작하기 전에 어떻게 초기화 할 수 있습니까? 아마도 MainActivity가 호출 된 직후에이를 초기화해야 할 것입니다. – user1878458

+0

ok 다른 스레드에서 초기화 할 수 있었으며 지금은 정상적으로 작동하는 것으로 보입니다. onStop에 대한 귀하의 도움과 조언에 감사드립니다. – user1878458