안녕하세요.
activity에서 동영상 재생을 할때 url을 다시 읽어와서 재생시키는 내용인데요,
간략한 코드는 아래와 같습니다.
public void onClick(View v) {
....
Thread t = new ThreadPlayVideo(view);
if(!isUrlValid(view.cur_page_item())){
...
t.start();
try{
t.join();
} catch(Exception e){
}
}
play_video();
}
class ThreadPlayVideo extends Thread{
...
public void run(){
detail_view.content_url_.request(detail_view.cur_entry_item_.getLinkAlternate());
}
}
기대하는 실행순서는,
t.start() =>스레드 실행
detail_view.content_url_.request() ==> 리스너실행 됨
위 리스너에서 oncomplete() 수행 후, play video() 실행.
이렇게 되어야 하는데
현재는
t.start() =>스레드 실행
detail_view.content_url_.request() ==> 리스너실행 됨
play video()실행
리스너 oncomplete() 옴
이렇게 실행이 되어서 바뀐 주소가 오기전에 이미 play를 해버립니다.
t.join을 하면, t가 실행하는 동작이 끝날때까지 기다린다고 해서 저렇게 구조를 변경했는데도
제대로 동작을 안하네요.
혹시 이유를 아시는 분 있나요? ㅠㅠ