본문 바로가기
Language/Android

[Android] 안드로이드_실행 딜레이 처리(Handler/postDelayed)

by 썸머워즈 2019. 8. 12.
반응형



앞의 과정에 약간의 시간이 두고 실행시키고 싶을때, 딜레이를 주고 싶을때 Handler를 사용하여 아주 쉽게 적용 시킬 수 있다.


가볍게 몇초뒤에 실행시키고 싶을때 주로 사용되는 " postDelayed메소드 "이다.


일단 기본적인 문법은 다음과 같다.


Handler mHandler = new Handler(); mHandler.postDelayed(new Runnable() { public void run() {             // 시간 지난 후 실행할 코딩 } }, 500); // 0.5초후



postDelayed 메소드의 활용 예제를 한번 확인해 보자.



활용1)이제 Handler()를 이용한  실행이 끝난후 확인이 가능하다.


new Handler().postDelayed(new Runnable() {


@Override 

public void run() {

                         mHandler.sendEmptyMessage(0);  // 실행이 끝난후 알림

             }

 }, 1000);  // 1 초 후에 실행 


Handler mHandler = new Handler() { 

public void handleMessage(Message msg) { // 실행이 끝난후 확인 가능 }

 };


활용 2) 전달받은 메시지에 따른 처리 (출처 : http://androi.tistory.com/57)



    new Handler().postDelayed(new Runnable() {// 0.5 초 후에 실행
        @Override
        public void run() {
            // 실행할 동작 코딩
            Message msg1 = mHandler.obtainMessage();  //사용할 핸들러를 이용해서 보낼 메시지 객체 생성
            Bundle b1 = new Bundle();    //메시지를 담을 번들 생성
            b1.putBoolean("END_AUTH"true);    //번들에 메시지 추가
            msg1.setData(b1);    //메세지에 번들을 넣는다.
            mHandler.sendMessage(msg1);     //메세지를 핸들러로 넘긴다.
        }
    }, 500);    
 
 
    Handler mHandler = new Handler() {
        public void handleMessage(Message msg) {  // 실행이 끝난후 확인 가능
                Bundle bd = msg.getData();
                if(bd.getBoolean("END_AUTH")){
                    // 메시지를 받고 처리할 부분
 
                }
            
        }
    };








반응형


댓글

TOP