Study/Java

Callback Interface

MWP 2017. 1. 23. 02:13



Callback

피호출자(callee) 가 호출자(caller) 를 호출하는것을 의미한다




다음과같은 Main 함수 내에서 Caller 인 Main 함수는 Callee 를 생성하고 Callee 의 함수를 호출 할 수 있다

1
2
Callee callee = new Callee();
callee.doSomething();


그러나 Callee 가 Caller(Main) 을 호출해야 할 땐 Callback 이나 Handler 를 이용할 수 있다




LoginResultCallback.java

1
2
3
4
public interface LoginResultCallback {
    public void resultOK(String id, String pw);
}
 


Main.java 내부
1
2
3
4
5
6
7
8
LoginResultCallback callback = new LoginResultCallback() {
    @Override
    public void resultOK(String id, String pw) {
        // Callee 에서 호출시 호출됨
    }
};
 
 Callee callee = new Callee(callback);
 

Callee.java 내부


1
2
3
4
5
6
7
8
9
    // 생성자
public Callee(LoginResultCallback callback) {
        // 콜백 등록
        this.callback = callback;        
    }
 
public void doSomething(){
       callback.resultOK("아이디","패스워드");
}


Callee 에서 Main 함수로 callback 요청.