스타트 버튼과 스탑 버튼이 있는데 스타트 버튼을 누르게 되면

   

mTimer.schedule( 

            new TimerTask(){ 

                @Override
                public void run(){              
                  Log.e("CAM TEST","run!!!!!!!!!!");
                    handler.post(new Runnable(){ 
                     
                       public void run(){ 
                       
                              // 수행할 작업을 넣는다. 
                      Log.e("CAM TEST","run2!!!!!!!!!");
             beginRecording(mVideoView.getHolder());
          
                               } 
                      }); 
                }
            }, 1000, rcdtime+5000
   );   

 

이렇게 해서 반복작업을 시작합니다.. 그리고 저 스탑 버튼을 누르게되면

mTimer.cancel()에 의해서 작업을 종료하게 했는데

다시 스타트 버튼을 누르면

 

private void setButtons()
 {
  // Rec Start 버튼 콜백 설정
  Button recStart = (Button)findViewById(R.id.RecStart);
  recStart.setOnClickListener(new View.OnClickListener() {
  
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub

    Log.e("CAM TEST","REC START!!!!!!!!!!!");
   
    if (mVideoView.getHolder() == null)
    {
     Log.e("CAM TEST","View Err!!!!!!!!!!!!!!!");
    }

    mTimer.schedule( 

            new TimerTask(){ 

                @Override
                public void run(){              
                  Log.e("CAM TEST","run!!!!!!!!!!");
                    handler.post(new Runnable(){ 
                     
                       public void run(){ 
                       
                              // 수행할 작업을 넣는다. 
                      Log.e("CAM TEST","run2!!!!!!!!!");
             beginRecording(mVideoView.getHolder());
          
                               } 
                      }); 
                }
            }, 1000, rcdtime+5000
   );     
   }
  });
  
  // Rec Stop 버튼 콜백 설정
  Button recStop = (Button)findViewById(R.id.RecStop);
  recStop.setOnClickListener(new View.OnClickListener() {
  
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    // 레코더 객체가 존재할 경우 이를 스톱시킨다
 sel=1;
 
    if ( recorder !=null){
    Log.e("CAM TEST","CAMERA STOP!!!!!");
     recorder.stop();
     recorder.release();
     recorder = null;
    }
    // 프리뷰가 없을 경우 다시 가동 시킨다
    if ( mCamera == null ) {
     Log.e("CAM TEST","Preview Restart!!!!!");
     // 프리뷰 다시설정
     setCameraPreview(mVideoView.getHolder());
     // 프리뷰 재시작
     mCamera.startPreview();
    }
    mTimer.cancel();
   Log.e("CAM TEST","taskstop!!!!!!!!!");
  
   }
  });   
 }

 

 

 

java.lang.illegalstateexception : Timer was canceld 가 발생합니다

그리고 다른 에러는     mTimer.schedule(   이부분을 가리키고 있었습니다 (로그캣에)

 

조언 부탁드립니다