스타트 버튼과 스탑 버튼이 있는데 스타트 버튼을 누르게 되면
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( 이부분을 가리키고 있었습니다 (로그캣에)
조언 부탁드립니다
아마..타이머를 멈췄을때 쓰레드쪽에서 뭔가 문제가 생긴것 같네요...^^..레퍼런스 한번 찾아보시길...