Android(Java)
[Java] interface Callback
삽질중
2024. 1. 5. 10:40
안드로이드 안한지 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 + " 처리가 되었습니다.");
}
});
}
}