반응형
안녕하세요. 돼지왕 왕돼지입니다.
오늘은 이벤트 처리 ( Event Handling ) 의 우선순위에 대해 알아 보겠습니다.
무슨 얘기인가?
Touch event 를 예로 들어봅시다. Touch event 관련된 함수들은 다음이 있죠.
1. 콜백함수 : onTouchEvent( MouseEvent event )
2. 디스페치 함수 : dispatchTouchEvent( MouseEvent event )
3. 리스너 함수 : OnTouchListener.onTouch( MouseEvent event )
추가적으로 자식VIew 와 부모 View 도 있겠습니다.
이것들이 모두 구현 및 등록되어 있을 떄 어떤 녀석들이 먼저 불리는가를 알아보려는 것입니다.
정답은 무엇인가?
1. 리스너 함수.
2. 뷰의 콜백 메서드
- dispatch 가 먼저 불리고, on 함수가 나중에 불립니다.
- dispatch 가 먼저 불리고, on 함수가 나중에 불립니다.
3. 액티비티의 콜백 메서드
- dispatch 가 먼저 불리고, on 함수가 나중에 불립니다.
- dispatch 가 먼저 불리고, on 함수가 나중에 불립니다.
이걸 왜 알아야 하는가?
event handling 관련 함수들은 보통 boolean 형태로 return을 하도록 되어있습니다. 이 때 false를 return 하면 해당 함수에서 event 를 처리하지 않았으니 다음 사람(함수)이 처리하라는 이야기로, 우선순위의 하위순위로 이벤트가 계속 전달이 됩니다. true 를 return 하면 해당 함수에서 event 를 다 처리했다는 의미로, 쓸데없이 다음 사람(함수)에게 알릴 필요가 없어, 전달되지 않습니다. 이것을 알아두어야 하죠 :)
로그인 없이 추천 가능합니다. 손가락 꾸욱~
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] ADB (Android Debug Bridge) 기본 명령어들 (0) | 2012.02.28 |
---|---|
[Android/안드로이드] Menu 에 대한 모든 것 ( OptionMenu, ContextMenu, Check Menu ) (0) | 2012.02.28 |
[Android/안드로이드] SoundPool(사운드 풀). 우리도 안드로이드에서 소리 좀 내보자구요. (2) | 2012.02.28 |
[Android/안드로이드] Canvas 에 Path 를 그려보자. (0) | 2012.02.28 |
[Android/안드로이드] Canvas ( 혹은 Bitmap ) 에 Text 출력하기. (0) | 2012.02.28 |
댓글