목차
- postDelayed 함수란?
- postDelayed 메소드 원형과 인자 및 반환 값 설명
- postDelayed 일정 시간 뒤 콜백 함수 실행 예제
- postDelayed 등록한 콜백 함수 삭제 예제
- postDelayed 활용 예제
1. postDelayed 함수란?
안드로이드에서 Handler
의 postDelayed
함수는 일정 시간 후에 콜백을 호출하는 메소드입니다.
이를 통해 UI 스레드를 블로킹하지 않고도 일정 시간 지연 후에 원하는 작업을 실행할 수 있습니다.
2. postDelayed 메소드 원형과 인자 및 반환 값 설명
postDelayed
메소드의 원형은 다음과 같습니다:
boolean postDelayed(Runnable r, long delayMillis)
postDelayed
메소드는 두 개의 인자를 받습니다:
r
: 실행하고자 하는 콜백을 담은Runnable
객체delayMillis
: 콜백을 호출할 딜레이(지연) 시간(밀리초 단위)
postDelayed
메소드는 콜백을 성공적으로 대기열에 등록하면 true
를 반환하고, 등록에 실패하면 false
를 반환합니다.
3. postDelayed 일정 시간 뒤 콜백 함수 실행 예제
아래는 postDelayed
를 사용하여 일정 시간(예: 2000밀리초) 후에 콜백 함수를 실행하는 예제입니다.
Handler handler = new Handler();
Runnable callback = new Runnable() {
@Override
public void run() {
Log.d("test-log", "run!!");
}
};
long delayMillis = 2000; // 2000밀리초 = 2초
handler.postDelayed(callback, delayMillis);
4. postDelayed 등록한 콜백 함수 삭제 예제
postDelayed
로 등록한 콜백 함수를 삭제하는 예제입니다.
Handler handler = new Handler();
Runnable callback = new Runnable() {
@Override
public void run() {
// 이곳에 원하는 작업을 수행합니다.
}
};
long delayMillis = 5000; // 5000밀리초 = 5초
// 콜백 등록
handler.postDelayed(callback, delayMillis);
// 등록한 콜백 함수를 삭제
handler.removeCallbacks(callback);
5. postDelayed 를 일정한 시간으로 호출하여 작업하는 예제
postDelayed
를 활용하여 간단한 애니메이션 효과를 주는 예제입니다.
Handler handler = new Handler();
Runnable animationRunnable = new Runnable() {
int animationCount = 0;
@Override
public void run() {
// 애니메이션 처리
// 예: 이미지를 조금씩 움직이거나 페이드 인/아웃 등
if (animationCount < 10) {
// 애니메이션이 끝나지 않았으면 다음 프레임까지 대기
handler.postDelayed(this, 100); // 100밀리초 = 0.1초
animationCount++;
} else {
// 애니메이션이 끝나면 마무리 작업 수행
// 예: 애니메이션 종료 후 처리
}
}
};
// 애니메이션 시작
handler.post(animationRunnable);
이와 같이 postDelayed
함수를 활용하면 안드로이드에서 일정 시간 뒤에 콜백을 실행하거나 간단한 애니메이션 효과를 구현하는 데 유용하게 사용할 수 있습니다.
반응형