public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

    keepSession();
    }

    Handler mHandler = new Handler(){
     public void handleMessage(Message msg){
      if(msg.what==0){
       keepSession();
      }
     }
    };
   
    public void keepSession(){
     BackThreadKeepSession proc = new BackThreadKeepSession();
        //proc.setDaemon(true);
        proc.start();      
    }
   
   
    class BackThreadKeepSession extends Thread{
     public void run(){   
      try{
       Thread.sleep(10*1000);
       //.....여기서 작업하는 코드가 있습니다.
       Log.d(logTag,"[H : "+keepSessionMinute+"]-Keep Session : "+new java.util.Date().toString());
      }catch(Exception e){       
      }
      mHandler.sendEmptyMessage(0);
     }
    }



위 처럼 사용했는데요 지연시간을 우선 확인코다 10초로 주었구요
Main UI Activity가 종료 되었음에도
나는 살아있다 ~~~~~하면서 서브 쓰레드가 Log를 보내고있습니다. 이론 ㅠ,ㅠ.


원래는 Main에 Flag값으로 while(flag)로 실행하다가 onDestory에서 Flag를 false로 변환처리했는데
onDestory가 안불려질수도 있는 상황이 있으니깐 Handler를 재귀로 콜하게 했는데 이런..
서브 Thread가 왜 살아있을까요?