제가 지금 일정 시간이 지나고 자동으로 뷰가 전환되는 코드를 짜야 합니다.
현재 뷰 전환은 사용자 정의 ViewGroup에서 addView와 removeView를 사용하고 있습니다.
예를 들어 A라는 View(역시 사용자 정의)가 있고 B라는 View가 있다면
A라는 뷰 안에서 Timer를 돌려서 3초 후에 실행하도록 schedule을 등록했다면
3초 후에 ViewGroup에서 B View를 addView(B); 하고 다음 라인에서 removeViewAt(0); 을 합니다.
그런데 디버깅을 해보면
Timer에서 3초후에 ViewGroup에 들어가서 addView(B); 까지는 갑니다.
근데 저 addView를 실행하는 순간 Timer.class 파일로 가더니....
아무런 변화가 없습니다 -_-;
Timer.class에서 뭐 내용은 안보이니까...
라인만 한 20라인정도 실행하더니 다시 입력을 기다리는 실정입니다 -_-;;
대충 코드를 보자면

LogoView로 View를 확장해서 만든 클래스의 생성시 초기화 부분에 있는 타이머입니다.
생성되면 3초후에 ViewController의 changeView 메서드를 실행하게 되어 있습니다.
  Timer timer = new Timer();
  timer.schedule(new TimerTask() {
   
   @Override
   public void run() {
    // TODO Auto-generated method stub
    viewCtrl.changeView(viewCtrl.VIEW_MAIN);
   }
  }, 3000);



changeView 메서드가 실행되면 받아온 인수 VIEW_MAIN에 의해 case문의 VIEW_MAIN 으로 가게 됩니다.

public void changeView(int nextView)
    {
     switch(nextView)
     {
         case VIEW_LOGO:
       this.addView(vLogo);
    this.removeViewAt(0);
    break;
      case VIEW_MAIN : 
       this.addView(vMain);
       this.removeViewAt(0);
       //vGame.startGame();
       break;
      case VIEW_GAME : 
       this.addView(vGame);
       this.removeViewAt(0);
       break;
      case VIEW_GAMEOVER : 
       this.addView(vGameover);
       this.removeViewAt(0);
       break;
      case VIEW_OTHER : 
       this.addView(vMain);
       this.removeViewAt(0);
       break;
     }
     
     //crossDissolve(this.getChildAt(0));
  currentView = nextView;
     Log.i("Agzac", "Click");
    }


여기서 addView로 vMain을 삽입하게 되는데 이 부분에서 addView가 실행되는 것 같으나
removeViewAt(0);이 실행되지 않음으로서 확실하게 확인할 방법을 잃었습니다;
addView(vMain)으로 진입한 후에 Timer.class가 탭으로 뜨면서 내부적으로 뭐가 실행되나 봅니다;
Step Over 하면 Timer.class의 라인 번호가 진행되다가 멈춤 (타이머는 죽은 듯 보입니다. 원래 1번만 실행하는 것이니..)
그러고 대기 상태가 되는 것 같습니다;

근데 중요한 것은 onTouch 로 이벤트를 받아서 changeView를 하면 잘된다는 것입니다.
뭔가 addView든, removeViewAt이든 Timer랑 물리면 정상작동하지 않는 것 같은데
혹시 뭔가 정보가 있으신가요? ㅠㅠㅠㅠㅠㅠㅠ
1.5 버전으로 제작중입니다 ㅠ
lifecluee@gmail.com