안드로이드 안한지 10년도 넘었다. 개념 정리부터 .... 스위프트 클로저와 비슷한거 같은데 뭔가 약간 다르다... ㅡ.,ㅡ;

 

ClassA Interface 예제 클래스

interface CustomCallback {
    public void onCall(String s);
    public void onCall2(String s);
}

public class ClassA {

    private final WeakReference<CustomCallback> mCallback;

    public ClassA(CustomCallback callback) {
        this.mCallback = new WeakReference<CustomCallback>(callback);

        callMe();
    }

    public void callMe() {
        System.out.println("ClassA Call");
        if (mCallback != null) {
            String data = "orignal data";
            this.mCallback.get().onCall2(data);
        }
    }
}

 

MainAcitivity 연결

public class MainActivity extends AppCompatActivity {

    ClassB classb;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ClassA a = new ClassA(new CustomCallback() {
            @Override
            public void onCall(String s) {
                Log.d("onCall", s + " 처리가 되었습니다.");
            }

            @Override
            public void onCall2(String s) {
                Log.d("onCall2", s + " 처리가 되었습니다.");
            }
        });
    }

}

+ Recent posts