Creation/Programming
[안드로이드] 토글 버튼으로 타이머 작동/중지 컨트롤하기
Readiz
2014. 10. 31. 18:04
토글버튼으로 타이머 컨트롤하기
토글버튼으로 작동하는 타이머에 대한 예제는 인터넷에 많지만 제 마음에 드는건 찾기 힘들어서 이리저리 뜯어서 만들었습니다.
activity_main.xml에 버튼을 만들고(여기서는 btnRecord라는 이름을 사용하였습니다), MainActivity class의 oncrete 메소드에서 다음과 같이 작성합니다.
final Button btnRecord = (Button) findViewById(R.id.btnRecord); btnRecord.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { if (btnRecord.getText().equals("Record")) { timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { // To do } }, 0, 1000); btnRecord.setText("Stop"); } else { timer.cancel(); timer = null; btnRecord.setText("Record"); } } });
run 사이에 원하는 구문을 작성하시면 됩니다. 일반 버튼을 토글버튼으로 작동하게 한 것이라서 조금 모양새가 안나기는 하지만 작동에는 지장없습니다.
참고로 timer 객체의 schedule 메소드는 다음과 같이 사용합니다.
timer.schedule(TimerTask객체, 지연시간, 타이머가 반복될 시간);
지연시간은 최초에 1번 실행되기 전에 대기하는 시간이고, 그 뒤에 반복될 시간을 3번째 변수가 정해준다고 보면 되겠네요. 이렇게 동작중인 타이머는 timer.cancel()로 멈추게 할 수 있습니다.