마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

쓰레드 동기화 관련 질문이 있습니다.

0 추천
OBJ Loader를 만드는 중 오류가 자꾸 발생하네요..

먼저 프로그램 동작을 설명하면

 Main Activity 클래스에서 Button.OnClickListener()를 통해  yes/no 대와상자를 호출 후  파일을 로드 합니다.  

 

그리고 GLSurfaceView.Renderer 클래스  에서 로드한 obj파일을 그려줍니다.

 

이게 단일 스레드에서는 잘 돌아 가는데, 로딩 하는 동안  대화상자가 닫히지 않고 계속 켜져 있는 문제가 있어

 

안드로이드 프로그래밍 정복 책의 예제 C16_Post.java의 처럼 아래와 같이 핸들러메세지를 지연 삽입하여 해결하려 했는데 자꾸만 프로그램이 죽네요

btnHandler.postDelayed(new Runnable(){
    public void run(){
      renderer.object = new Object( R.raw.OBJ1, renderer.mContext);
    }
   },10);
    

 

제 짧은 생각에는 핸들러메세지를 지연 삽입하면 다른 스레드에서 로딩( renderer.object = new Object( R.raw.OBJ1, renderer.mContext) )을 하고 있는데 GLSurfaceView.Renderer 클래스에서 그리려고 해서 문제가 생기는 것 같습니다.

 

어떻게 해결해야 할까요??

 

다시 또 비가 내리기 시작하네요..

 

답변 주시면 감사하겠습니다. 화이팅~!!
익명사용자 님이 2013년 7월 30일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...