콜백
이벤트가 발생하면 특정 메소드를 호출해 알려줌 (1개)
옵저버
데이터나 속성의 변경을 감지하여 변경사항을 전달
리스너
이벤트가 발생하면 연결된 리스너(핸들러)에게 이벤트를 전달 (n개)
> 안드로이드 프레임워트에서는 리스너를 1개밖에 등록하지 못해 콜백이랑 비슷
인터페이스
자바프로그래밍의 인터페이스는 클래스가 반드시 구현해야할 행동(메서드)을 지정하는 데 사용되는 추상타입이다.
인터페이스는 interface 키워드를 통해 선언할 수 있으며 implements 키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다.
>구현1 인터페이스 정의
public interface CustomListener {
void callBack(Object object);
}
>구현2 동작 커스텀 클래스 정의
public class A {
private CustomListener listener;
public A(CustomListener customListner){
super();
this.listener = customListner;
}
public void start(){
//... 필요한 작업 실행 후 결과 호출
result();
}
public void result(){
if (this.listener != null){
//callback 호출
listener.callBack("HELLO");
}
}
>구현3 MainActivity에서 A 클래스 작업 후 결과 콜백 동작
public class MainActivity extends AppCompatActivity implements CustomListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startA();
}
public void startA(){
new A(this).start(); //여기서 동작할 클래스 A를 호출하고 생성자로 콜백
}
@Ocerride
puclic void callBack(Object object){
//헤당 함수가 A클래스의 new 생성 > start > rewult()를 통해서 콜백 호출됨
//결과 호출
}
}
https://www.charlezz.com/?p=768
'Android' 카테고리의 다른 글
[패스트캠퍼스] 코틀린 문법 훑어보기 (0) | 2023.01.02 |
---|---|
[Android] Handler (0) | 2021.09.02 |
[Android] 라이브러리 만들기 (0) | 2021.06.07 |
[JAVA] 싱글톤(Singleton) 패턴 (0) | 2021.04.11 |
[Android] DB (SQLite) (0) | 2021.03.23 |