스레드를 Application 클래스를 상속받은 MainApplication.java 에서 생성해서

프로그램 전체에서 공용으로 쓸 수 있게 했는데요

 

스레드 코드가

 

  public void run() {
  while(!isThreadKill) {
   try{  
     mHandler.sendEmptyMessage(0);
     sleep(1000);
    }
   }
   catch(InterruptedException e) {
   }
  }


이런 식이고... 프로그램 돌리면서 DDMS 의 Thread 탭으로 확인해보니까

 

isThreadKill 변수가 true 이면 저 while 문을 빠져나오게 되면서 스레드가 죽으면서 없어지는 것도 확인했거든요~~

 

그런데 문제는 어플을 종료하지 않고 다시 스레드를 시작시킬려고

 

thread = null;

thread = new TimeThread(mHandler);

thread.setDaemon(true);

thread.start();

 

이렇게 정석적인 스레드 시작방법으로 코드를 써놨는데 전혀 스레드가 재시작 하지를 않네요... 컴파일 에러는 안나는데...

 

한번 죽은 스레드는 그 응용프로그램이 죽기전까진 다시 살아날 수 없는건가요??? 정말 궁금합니다!!!

 

물론 스레드를 여러개 생성하는건 가능합니다만 이러면 CPU 점유율이 엄청 올라가서...

 

스레드 한개로 응용프로그램내에서 죽였다 살렸다 하다가 프로그램 종료시에 같이 죽는 그런 설계를 하고싶습니다

 

도움좀 주심 감사하겠습니다!