이벤트처리

안드로이드 2015. 3. 12. 20:30

무한루프 돌면서 입력을 기다리는 폴링방식을 자원낭비가 심하다.

 

이벤트 구동 방식은 다른작업을하다가 입력이 발생하면 이벤트가 발생되고 애플리케이션이 이벤트를 처리한다.

 

 

이벤트처리하는 방법은 여러가지가 있다. 많이 사용되는 두가지방법을 살펴본다.

 

뷰클래스의 이벤트 처리 메소드를 재정의하는방법

뷰클래스의 이벤트 처리 메소드를 재정의한다. 특수한 경우에만 사용

 

이벤트를 처리하는 객체를 생성하여 이벤트를 처리하는 방법

이벤트를 처리하는 객체를 별도로 생성하여 위젯에 등록한다. 이벤트를 처리하는 가장 일반적인 방법

 

 

1. 이벤트 처리 메소드 재정의

 

사용자와 상호작용하는 객체는 View클래스이다 이벤트 발생했을 경우 호출되는 몇개의 콜백메소드를 가지고 있다.

 

View 객체에 액션이 발생하면 프레임워크에서 콜백 메소드를 호출한다.

 

예를 들어 키패드를 누르면 View클래스의 onKeyDown()메소드가 호출

키 이벤트를 처리하는 방법은 onKeyDown()메소드를 재정의하는것이다.

 

이방법을 사용하려면 View클래스를 상속받아서 자신의 뷰를 정의하여야한다. 이벤트처리하기위해서 상속받는 것은 실용적이지 않다. 그래서 많이 사용되지않는다.

 

반드시 이 방법이 필요한 경우는 사용자가 커스텀 컴포넌트를 만들고 싶은 경우이다.

 

우리가 재정의 할 수 있는 View클래스의 이벤트 처리 메소드는 다음과 같다.

 

onKeydown(int,KeyEvent) - 사용자가 키보드를 눌렀을 때 호출

onKeyUp(int,KeyEvent) - 사용자가 키보드에서 손을 뗐을대 호출

 

onTrackballEvent(MotionEvent) - 사용자가 트랙볼을 움직였을 때 호출

ontouchEvent(MotionEvent) - 사용자가 화면을 터치했을 때 호출

onFocusChanged(boolean, int, Rect) - 뷰가 포커스를 얻거나 잃었을 때 호출

 

 

 

블로그 이미지

왕왕왕왕

,