当前位置: 首页 > 知识库问答 >
问题:

什么是回调在Android?[重复]

平嘉熙
2023-03-14

我想了解回调的概念。我在互联网上搜索过关于回调的内容,有很多使用接口的示例,其中一个类正在使用该接口调用另一个类的方法。但是我仍然不能理解回调的主要概念,使用回调的目的是什么?

共有3个答案

黄宏毅
2023-03-14

回调在Java中非常有用。

使用回调,您可以通知另一个异步操作类,该异步操作已成功或错误完成。

姚兴安
2023-03-14

首先创建一个接口,然后定义一个方法,该方法将充当回调函数。在这个例子中,我们将有两个类,一个是classA,另一个是classB

接口:

public interface OnCustomEventListener{
  public void onEvent();   //method, which can have parameters
}

B类中的监听器本身(我们只将监听器设置在B类中)

private OnCustomEventListener mListener; //listener field

//setting the listener
public void setCustomEventListener(OnCustomEventListener eventListener) {
   this.mListener=eventListener;
}

在classA中,我们如何开始倾听classB所说的一切

classB.setCustomEventListener(new OnCustomEventListener(){
    public void onEvent(){
       //do whatever you want to do when the event is performed.
    }
});  

如何从classB触发事件(例如按下按钮时)

if(this.mListener!=null){
   this.mListener.onEvent();
}

另外,您的自定义侦听器可能有您想要的任意多个参数

来源

全冥夜
2023-03-14

这是一个很好的教程,它很好地描述了回调和用例。

回调的概念是在另一个类中的某些工作完成时通知一个类同步/异步。有人称之为好莱坞原则:“不要叫我们,我们叫你”。

这里有一个例子:

class A implements ICallback {
     MyObject o;
     B b = new B(this, someParameter);

     @Override
     public void callback(MyObject o){
           this.o = o;
     }
}

class B {
     ICallback ic;
     B(ICallback ic, someParameter){
         this.ic = ic;
     }

    new Thread(new Runnable(){
         public void run(){
             // some calculation
             ic.callback(myObject)
         }
    }).start(); 
}

interface ICallback{
    public void callback(MyObject o);
}

类A调用类B在线程中完成一些工作。如果线程完成了工作,它将通过回调通知类A并提供结果。所以没有必要进行投票或其他什么。一旦结果可用,您将立即获得结果。

在Android中,回调用于活动和片段之间的f.e。因为片段应该是模块化的,所以可以在片段中定义回调来调用活动中的方法。

 类似资料:
  • 问题内容: 我想了解回调的概念。我在互联网上搜索了有关回调的信息,有很多使用接口的示例,一个类正在使用该接口调用另一类的方法。但是我仍然不能理解回调的主要概念,使用回调的目的是什么? 问题答案: 回调的概念是在另一个类中完成某些工作时通知类同步/异步。有人称其为好莱坞原则:“不要叫我们,我们叫你”。 这是一个例子: A类调用B类以在线程中完成一些工作。如果线程完成了工作,它将通过回调通知Class

  • 问题内容: 我已经阅读了回调的Wikipedia定义,但仍然不明白。谁能解释一下回调是什么,尤其是以下几行 在计算机编程中,回调是对可执行代码或一段可执行代码的引用,该代码作为参数传递给其他代码。这允许较低层的软件层调用较高层中定义的子例程(或函数)。 问题答案: 也许一个例子会有所帮助。 您的应用程序想要从一台远程计算机下载文件,然后写入本地磁盘。远程计算机是拨号调制解调器和卫星链路的另一侧。延

  • 问题内容: 什么是JavaScript中的闭包和回调?我还没有找到很好的解释。 问题答案: 回调 是一个更简单的概念。回调基本上是一个函数接受另一个函数作为参数的地方。在执行过程中的某个时刻,被调用函数将执行作为参数传递的函数,这是一个回调。回调实际上经常是作为异步事件发生的,在这种情况下,被调用的函数可能会在未执行回调的情况下返回,这可能会在以后发生。这是一个常见的示例(基于浏览器): 在这里,

  • 问题内容: 在Parallel Python中,它在 Submit 函数中有一个叫 回调 (documentation)的东西,但是似乎并不能很好地解释它。我几天前已在他们的论坛上发布了消息,但没有收到任何回复。有人可以解释什么是回调及其用途吗? 问题答案: 回调是API使用者提供的功能,API可以转回并调用(回调您)。如果我设置了博士的约会,我可以给他们我的电话号码,这样他们就可以在前一天给我打

  • 什么是正确的方式来指定回调时,做一个POST为"/1.1/列表/create.json"? 以下是Twitter API文档:https://dev.twitter.com/rest/reference/post/lists/create MyTwitterApiClient

  • 问题内容: React.js为动画提供了一个低级API,称为ReactTransitionGroup。在文档中指出,对钩,和,一个回调函数作为参数传递。 我的问题是,此回调究竟是什么以及如何传递给这些钩子,文档没有对这些回调进行任何说明,只是将动画延迟到调用之前。 问题答案: 首先,我也仍在学习ReactJS,所以我的方法可能有错误,而没有错误。为此提前致歉。 打开“开发人员工具”的窗口,分析我刚