본문 바로가기

Android

Android Handler를 이용한 특정 로직 지연시키기.

팝업메뉴->진입->새로운팝업 과같은 시나리오에서 이전 팝업메뉴를 Invisible 시키려고

단순하게 해당 View를 invisible 시키니 진입시 딜레이가 발생했다.

과장님의 헬프로 안드로이드 handler를 통해 다음으로 넘어가기전에 먼저 처리하는 방법을 알게되었다.

Activity 전역에 Handler를 등록하고 


1
2
3
4
5
6
7
8

private Handler messageHandler = new Handler(){ @Override public void handleMessage(Message msg) { if(msg.what == 0){ //실행될 로직. } }; };


위에 실행될 로직이 들어갈 곳에 아래와 같이 PostDelay함수를 써주면 된다.


1
2
3
4
5
6
messageHandler.postDelayed(new Runnable() {
     @Override
     public void run() {
	 messageHandler.sendEmptyMessage(0);
     }
}, 50);


postDelayed(Runnable r,long delayMillis)
= delayMills 후에 Runnable을 실행하라의 의미

sendEmptyMessage(int what)
= handler에 구현된 단순 메시지만 보낼때 사용.


음 좀더 공부하고 추가적으로 포스팅해야겠다. ㅎㅎ