main 액티비티에서 sub액티비티로 이동합니다.
sub액티비티에서는 videoview 와 재생,일시정지,정지 버튼이 있습니다
재생을 누르게되면 로딩을 시작하고 재생을 시작합니다 재생이 되고있는중에 일시정지를 하고
뒤로가기를 눌러서 어플을 종료시키면 sub액티비티와 main액티비티의 상태변화는 다음과 같습니다
03-20 09:50:10.621: DEBUG/test(4037): sub-onPause
03-20 09:50:10.653: DEBUG/test(4037): main-onRestart
03-20 09:50:10.660: DEBUG/test(4037): main-onStart
03-20 09:50:10.660: DEBUG/test(4037): main-onResume
03-20 09:50:13.340: DEBUG/test(4037): sub-onStop
03-20 09:50:13.340: DEBUG/test(4037): sub-onDestroy
03-20 09:50:13.340: DEBUG/test(4037): sub-onDestroy : isFinishing
03-20 09:50:17.957: DEBUG/test(4037): main-onPause
03-20 09:50:18.324: DEBUG/test(4037): main-onStop
03-20 09:50:18.324: DEBUG/test(4037): main-onDestroy
03-20 09:50:18.324: DEBUG/test(4037): main-onDestroy : isFinishing
보시면 main이 다시 onrestart 가 되고 sub가 ondestory가 되기까지 3초의 시간이 걸립니다.
이번엔 재생중이 아닌 로딩중일때 뒤로가기로 어플을 종료시켰을때의 상태변화입니다.
03-20 09:45:28.971: DEBUG/test(3946): sub-onPause
03-20 09:45:28.995: DEBUG/test(3946): main-onRestart
03-20 09:45:28.995: DEBUG/test(3946): main-onStart
03-20 09:45:28.995: DEBUG/test(3946): main-onResume
03-20 09:46:19.885: DEBUG/test(3946): sub-onStop
03-20 09:46:19.885: DEBUG/test(3946): sub-onDestroy
03-20 09:46:19.885: DEBUG/test(3946): sub-onDestroy : isFinishing
다음처럼 sub액티비티가 ondestory가 되기까지 1분남짓의 시간이걸립니다.
문제는 main액티비티에서 한번더 뒤로가기하여 어플을 종료시키고자 할때 아직 sub액티비티가
종료되지않아서 그런진모르겠지만 종료가 되지않고 sub액티비티가 destory될때까지 기다렸다가
어플이 종료됩니다 이때는 홈키도 먹질않습니다.. 그리고 간헐적으로 anr오류도 나타납니다
구글링을 해보니까 videoview의 onpause() 메소드는 로딩중이라면 로딩을 끝내고 정지시킨다고 합니다.
그래서 로딩중일때 뒤로가기를 하게되면 로딩이 끝날때까지 기다리는것 같습니다.
pause()를 스레드로 해보았지만 답은 아니였습니다.
도와주십시오.ㅠㅠ
new Thread(new Runnable(){
public void run(){
if(mVideoViewCouncil != null){
mVideoViewCouncil.pause();
onStopMedia();
}
}
}).start();답변 감사합니다!
03-20 10:56:15.807: DEBUG/test(4169): stop
03-20 10:57:04.744: DEBUG/test(4169): sub-onPause
03-20 10:57:04.752: DEBUG/test(4169): main-onRestart
03-20 10:57:04.752: DEBUG/test(4169): main-onStart
03-20 10:57:04.752: DEBUG/test(4169): main-onResume
03-20 10:57:04.861: DEBUG/test(4169): main-onPause
03-20 10:57:05.635: DEBUG/test(4169): sub-onStop
03-20 10:57:05.635: DEBUG/test(4169): sub-onDestroy
03-20 10:57:05.635: DEBUG/test(4169): sub-onDestroy : isFinishing
03-20 10:57:05.658: DEBUG/test(4169): main-onStop
03-20 10:57:05.658: DEBUG/test(4169): main-onDestroy
03-20 10:57:05.658: DEBUG/test(4169): main-onDestroy : isFinishing
stopplayback()를 이용했을때도 동일합니다 50여초 기다렸다가 어플이 종료됩니다..




videoview 종료라면 pause 하지마시고 stopplayback 쓰시길