Android中的callback是什么?

我想了解callback的概念。 我在互联网上search了callback,并且有很多使用接口的例子,一个类正在使用这个接口调用另一个类的方法。 但是我仍然无法得到callback的主要概念,使用callback的目的是什么?

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

callback的概念是,如果在另一个类中的某些工作完成,则通知类同步/asynchronous。 有人称之为好莱坞原则:“不要打电话给我们,我们打电话给你”。

这是一个例子:

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类callback并提供结果。 所以没有必要投票或什么的。 只要可用,您将得到结果。

在Androidcallback中,在活动和片段之间使用。 由于片段应该是模块化的,你可以在片段中定义一个callback来调用活动中的方法。

您先创build一个接口,然后定义一个方法,它将作为callback。 在这个例子中,我们将有两个类,一个classA和另一个classB

接口:

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

在classB中的监听器本身(我们只在classB中设置监听器)

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

在Aclass,我们如何开始听课,不pipeBclass要讲什么

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

我们如何从classB触发事件(例如按下button)

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

PS您的自定义侦听器可以有任意数量的参数

资源

callback在Java中可能非常有用。

使用callback函数,您可以通知另一个exception操作类,该exception操作已成功完成或发生错误。

这是之前讨论的。

在计算机编程中,callback函数是一段可执行代码,作为parameter passing给其他代码,预计在某个方便的时候callback(执行)参数。 这个调用可能是在同步callback中​​立即发生的,也可能是在以后的时间发生的,就像在asynchronouscallback中一样。

CallBack Interface用于Fragment在Android的Fragment通信。

请参阅此处了解您的理解。

我在以下情况下使用:在UI中,我得到了一个button的动作,例如。 用户想要下载一个500MB的文件。 谢谢我将初始化后台引擎(AsyncTask类)并传递参数给他。 在用户界面上,我将显示阻止进度对话框,并禁止用户进行任何其他点击。 问题是:何时从UI中删除阻止? 答案是:引擎成功或失败时,可以通过callback或通知。

通知和callback有什么区别,这是另外一个问题,但1:1是更快的callback。