안드로이드(Android) Chronometer, OnChronometerTickListener 통해 시간알아오기

 

환경 : Eclipse Mars, Android 4.2.2

 

OnChronometerTickListener Chronometer 객체가 start() 함수를 시작하게 되면 틱마다 한번씩 이벤트를 발생시킵니다.이전 Chronometer 을 구현한 버전에서 OnChronometerTickListener 만 추가하여 이벤트가 발생했을 때 시간을 구현한 예제입니다.

 

 

추가된 소스는 현재시스템 시간(SystemClock.elapsedRealtime()) Chronometer 에 셋팅되어있는 값의 차이를 화면에 메시지로 알려주는 기능입니다. 밀리세컨드로 표시 하였습니다.

 

chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
	public void onChronometerTick(Chronometer chronometer) {
		long myElapsedMillis = SystemClock.elapsedRealtime() - chronometer.getBase();
		String strElapsedMillis = "Elapsed milliseconds: " + myElapsedMillis;
		Toast.makeText(ChronometerActivity.this, strElapsedMillis, Toast.LENGTH_SHORT).show();
	}
});

 

Chronometer start() 함수가 구현한 기능과 같다고 보면 됩니다. SystemClock 에서 가져온시간과 Chronometer 에서 setBase() 값이 차이가 흘러간 시간을 나타내주기 때문이죠. Chronometer 위젯은 사용자가 시간을 구해 스레드로 매번 시간을 화면에 표시하기 위한 소스를 구현하지 않아도 되도록 기능을 제공해 주는 것이죠.

 

시간을 표현표현할 때 setFormat() 함수를 사용해 텍스트의 형태를 바꿀수도 있습니다. 포맷변경 버튼을 만들어 예제에 추가 하였습니다.


buttonFormat.setOnClickListener(new View.OnClickListener() {
	public void onClick(View v) {
		chronometer.setFormat("Formated Time - %s");
	}
});

 

전체소스와 레이아웃은 안드로이드(Android) Chronometer 사용하여 시간측정을 위한 타이머 만들기  를 참조하시기 바랍니다. 이전 아티클에 위 두가지 부분만 추가 되었습니다.

 

안드로이드(Android) Chronometer, OnChronometerTickListener 통해 시간알아오기

 

Posted by 녹두장군