Java/Android 關於回調的通俗理解

回調,我的理解就是:

  • A在這裏調用B中方法
  • B中那個方法的參數是A中實現了B中接口的對象
  • B中方法使用上面的對象
  • 這樣B中需要A做的邏輯就由對象又重新調用回去了
    看起來,不好理解。看下面代碼就好了。

被調用者B:

public class Person {
    AI mListener;
    ...

    // 接口,實現此接口的對象作爲參數,傳給下面的fun方法.
    // 方法裏面再調用SwitchStateChanged,即相當於
    // 1.執行了對象裏面的override的方法
    // 2.把參數(數據)傳到對象那裏
    public interface AI{
        void override_fun(String str);
    }

    public void fun(AI listener) {
        this.mListener = listener;
    }

    mListener.override_fun("B中的數據");//傳數據,更新UI之類的
    ...
}

調用者A:

Person p = new Person();
p.fun(new B.AI() {
    @Override
    public void override_fun(str) {
    Log.d("TAG",str);           
    });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章