주기적으로 어떤한 일을 시키려 할때 흔히 쓰는 타이머 이벤트 핸들러이다.
타이머를 이용해서 일정 시간 마다 어떠한 일을 수행하기 위해서는 아래 코드를 이용하면 쉽다.
<사용 방법>
onCreate() 함수 안에 넣어 쓰면 된다
final Handler myHandler = new Handler();
Runnable myRunnable = new Runnable() {
@Override
public void run() {
String nGoFloor ="";
for (int i = 0; i < lstGeneral.size(); i++) {
nGoFloor = nGoFloor + lstGeneral.get(i)+"\n";
}
Toast.makeText(MainActivity.this, nGoFloor, Toast.LENGTH_SHORT).show();
myHandler.postDelayed(this,3000);
}
};
myHandler.postDelayed(myRunnable,3000);
<간단 설명>
final Handler myHandler = new Handler();
핸들러를 하나 생성해준다. 여기서는 myHandler 라는 나만의 네임으로 만들었다.
1) final의 의미는 상수화 한다라는 의미라는데... 써줘야 한다. 안쓰면 안스에서 쓰라고 에러가 뜬다.
2) Handler의 Import는 반드시 "import android.os.Handler;" 요걸 써야 한다.
자바가 아니라는거!! 명심하자.
3) new Handler()는 없는거 만들어 주니까 당연히 new Handler()로 써줘야 한다.
Runnable myRunnable = new Runnable() {
@Override
public void run() {
String nGoFloor ="";
for (int i = 0; i < lstGeneral.size(); i++) {
nGoFloor = nGoFloor + lstGeneral.get(i)+"\n";
}
Toast.makeText(MainActivity.this, nGoFloor, Toast.LENGTH_SHORT).show();
myHandler.postDelayed(this,3000);
}
};
Runnable을 하나 생성해 준다. 여기서는 myRunnable 이라는 나만의 네임으로 만들었다.
String nGoFloor ="";
for (int i = 0; i < lstGeneral.size(); i++) {
nGoFloor = nGoFloor + lstGeneral.get(i)+"\n";
}
Toast.makeText(MainActivity.this, nGoFloor, Toast.LENGTH_SHORT).show();
myHandler.postDelayed(this,3000);
Runnable안의 요 코드는 테스트 용 코드 이므로 자신이 주기적으로 수행할 함수라든지 코드를 집어 넣어주면 된다.
myHandler.postDelayed(this,3000);
Runnable안의 이것은 myRunnable을 수행한뒤에 3000 ms 뒤에 myRunnable을 수행 하라는 의미이다. 아래 코드와의 차이점은 this를 쓴것인데. 이것은 당연히 현재 수행되고 있는 함수가 자기 자신이므로 this 이다.
myHandler.postDelayed(myRunnable,3000);
onCreate 함수를 실행하면 3000ms 뒤에 myRunnable를 수행하라는 의미 이다.
'안드로이드 > 기타' 카테고리의 다른 글
물과 불 게임 2탄 (0) | 2020.07.28 |
---|---|
물과 불 게임 1탄 (0) | 2020.07.28 |
AlertDialog - Exit (어플종료) (0) | 2017.01.23 |
AlertDialog -list (0) | 2017.01.23 |
Fragment (프래그먼트) (0) | 2017.01.23 |
onclickListener (이벤트 할당) (0) | 2017.01.19 |
Intent Share (공유하기) (0) | 2017.01.19 |
게임으로 배우는 안드로이드 개발 (0) | 2016.08.31 |