반응형
앞의 과정에 약간의 시간이 두고 실행시키고 싶을때, 딜레이를 주고 싶을때 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")){ // 메시지를 받고 처리할 부분 } } }; |
반응형
댓글