티스토리 뷰

#1/Android

[Android] Callback..! 콜백

_쿠나 2021. 8. 2. 17:27
728x90

원본 링크  < notion!

 

나는 도대체 언제 콜백을 이해하게 될까..?

 

Callback

이란 나중에 실행할 argument(인자)로 다른 함수에게 전달되는 함수를 의미한다. (call: 호출, back: 다시 돌아옴)

 

💡
싱글 스레드로 작동하는 javaScript에서 비동기 작업을 통해 여러가지 Task를 동시에 처리할 수 있는 이유는 callback을 이용하기 때문이다! - by Somebody

 

안드로이드에서 콜백 메서드란 다른 함수에 인수로 전달되는 함수이며 일종의 이벤트 후에 실행될 것으로 예상된다. 이 메서드의 목적은 다른 클래스의 어떤 일이 끝났을 때 클래스에 동기/비동기를 알려주는 것.

비동기적인 일이 진행되고 있을 때 매우 유용하다.

 

Design pattern은 Observer Design Pattern을 사용한다.

Observer pattern은 주체라고하는 객체(object)가 종속 목록(observer)을 유지하고, 일반적으로 메서드 중 하나를 호출함으로써 상태 변경을 자동으로 알려주는 소프트웨어 디자인 패턴.

 

 

자바에서 콜백은 인터페이스를 사용해 구현될 수 있음.

  1. Define the methods in an interface that we want to invoke after callback.
  2. Define a class that will implement the callback methods of the interface.
  3. Define a reference in other class to register the callback interface.
  4. Use that reference to invoke the callback method.

이게 일반적인 구현 과정이라고 한다.

 

암턴 콜백은 이벤트가 발생하면 메서드를 호출해서 실행 결과를 뱉어냄

(그런데 살다보니 return 없이 void 인 경우도 잇고나..)

리스너는 이벤트 발생 시 연결된 리스너(핸들러)에게 이벤트를 전달한다고 한다.

이벤트 리스너란 뷰 클래스 안에 있는 일종의 인터페이스로, 이 안에 하나의 콜백 메서드가 들어있다. 이 메서드는 리스너가 등록된 뷰가 .... 트리거 됐을 때 안드로이드 프레임워크를 호출한다.

onClick(), onLongClick(), onFocusChange() 등이 해당함.

사용자가 어떤 액션을 취할 때마다 메시지가 발생 → 해당 메시지의 핸들러가 미리 정의해둔 행동을 한다.

 

 

결론

  • 콜백 메서드는 다른 함수에 인수로 넣을 수 있는 메서드. on어쩌구... 함수들이 콜백 함수이다. 이벤트 발생 시 작업 수행을 위해 코드를 작성하는 곳.
  • 리스너는 특정 이벤트를 처리하는 인터페이스로, 추상 메서드인 onTouch()를 받아 실행하며 이벤트 핸들러라고도 한다.사용자와 상호작용하는 이벤트 발생 시 안드로이드 프레임워크의 인터페이스를 호출한다.

 

 

 

728x90
댓글
250x250
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함