안드로이드

안드로이드 new Handler.postDelayed()로 호출된 Runnable 해제하는 법

알통몬_ 2019. 5. 9. 08:55
반응형


공감 및 댓글은 포스팅 하는데

 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 

도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 

만들어 나가겠습니다^^

 


오랜만에 포스팅을 합니다.

안드로이드 new Handler.postDelayed()로 

호출된 Runnable 해제하는 법에 대해서 포스팅합니다.

new Handler.postDelayed()는 

어떠한 작업을 일정시간이 흐른 후에 실행할 때 사용합니다.

postDelayed(Runnable r, long delayMillis) 

두 가지 인자가 필요합니다.

Runnable 과 지연될 시간을 밀리초로 넣어주시면 됩니다.


먼저 작업을 Runnable에 선언해주세요.

class DE_AT_Runnable implements Runnable {


@Override
public void run() {
        //원하는 작업
}
}

그리고 Handler를 필드에 선언해주고,


Handler mHandler;

뭐 아래 같은 식으로 postDelayed()를 호출하겠죠?

de_at_runnable = new DE_AT_Runnable();
mHandler.postDelayed(de_at_runnable, 3000);

mHanlder 는 onCreate에서 

객체생성 해주었습니다.
mHandler = new Handler();


그리고 이제 특정 상황에서 3000이라는 시간이 지나기 전에

실행을 취소하고 싶다면?

if(mHandler != null) {
mHandler.removeCallbacks(de_at_runnable);
}

Handler에서 가지고 있는 removeCallbacks(Runnable r)을 호출해주면 됩니다.

어렵지 않죠?

이상입니다. 감사합니다.

반응형