zoukankan      html  css  js  c++  java
  • Android开发——回调(Callback)

    1. 回调函数的定义:

    在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的实现,需要B类去实现,B类实现该方法后,它本身不会去调用该方法,而是传递给A类,供A类去调用。

    类比:

    你(B类)去书店买书,结果发现想买的书卖完了,这时候书店(A类)告诉你他们有来书通知业务(接口和接口中的抽象方法),于是你留下了自己的手机号让书店有书了给你来电(实现该抽象方法),书店等到有书了以后会根据你留下的电话和方法给你来电提醒你(B类实现的方法由A类来调用)。

    2. 使用回调的情况:

    • 处理异步请求的返回值
    • 同一个事件有不同的处理方法

    3. 回调的使用方法:

    • 定义接口(public interfact),预定义需要完成的函数
    • 定义A类,使用接口和该接口中的抽象方法,同时在初始化A时请求函数B作为callback的参数
    • 定义B类(implements interface),设定函数的具体动作,并将B当做参数传给A,使A在回调时可以找到函数的位置

    4. 具体代码:

    • 定义接口
    //定义回调接口
    public interface Callback{
    void notice();
    }
    • 定义A类
      public class A{
      private CallBack callBack;
      public A(CallBack callBack){
      this.callBack = callBack;
      }
      public void Operation(){
      if(callBack != null){
      callBack.notice();
      }
      }
      }
    • 定义B类
    public class B implement CallBack{
    public static void main(String args[]) {
    A a = new A(this);
    a.Operation();
    }
    @Override
    public void notice(){
    System.out.println("Now you get notice!");
    }
    }



  • 相关阅读:
    C# 数据的序列化存取
    C# 移动端与PC端的数据交互
    C# Socket 简易的图片传输
    C# Socket学习笔记二
    C# Socket学习笔记一
    unity 小地图的制作
    Unity Layout碰撞检测
    Unity sqlite学习笔记一
    玩家信息血条及伤害值随主角移动
    C# 热水器
  • 原文地址:https://www.cnblogs.com/JasonLGJnote/p/11159861.html
Copyright © 2011-2022 走看看