Android

[Android] CallBack

an-hayyy 2021. 6. 8. 15:57

콜백

이벤트가 발생하면 특정 메소드를 호출해 알려줌 (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