将菜单相关事件称为“回调函数”是否有意义?

时间:2011-08-06 06:45:17

标签: android events callback

我正在浏览android记事本教程:http://developer.android.com/resources/tutorials/notepad/notepad-ex2.html

在Notepadv2第5步中,它说:

  

onListItemClick()是一个我们将覆盖的回调方法。

我对回调的概念有点新鲜,但是从研究来看,我的理解是回调是你在一个进程中提供的代码,当另一个进程达到某个结果时执行。是什么让这个特定事件成为回调,而不是其他事件?

这是一个回调,因为它仅在用户执行某些操作时调用(在这种情况下,单击列表项)?但是,如果是这样的话,那么任何事件都不能被视为回调,因为它只会在外部事件发生时被调用吗?或者我错过了什么?

2 个答案:

答案 0 :(得分:1)

  

我的理解是,回调是您在一个进程中提供的代码,当另一个进程达到某个结果时执行该代码

不完全是。

Wikipedia将回调描述为“对可执行代码或一段可执行代码的引用,作为参数传递给其他代码”。这可能是该术语的最佳用法。在这种情况下,由于Java操作以方法的形式出现,因此“回调方法”是一种将作为回调结果调用的方法。

  

这是一个回调,因为它仅在用户执行某些操作时调用(在这种情况下,单击列表项)?

不完全是。

这是一种回调方法,因为Android框架的其他部分正在检测事件(在这种情况下,用户点击列表中的项目)并调用onListItemClick()回调方法来控制。

  

但是如果是这样的话,那么任何事件都不能被认为是一个回调,因为它只会在外部事件发生时被调用吗?

通常,“回调”保留用于在检测事件的模块与实现回调以处理事件的模块之间存在明确定义的不透明边界的情况。在这种情况下,您没有编写Android操作系统,因此onListItemClick()是对您自己的代码的回调,操作系统将调用该代码来处理列表项目点击。

答案 1 :(得分:1)

CommonsWare的答案要完整得多,但我想我可以稍微简化一下解释。

回调被回调的东西。从概念上讲,您声明您对特定事件感兴趣(例如,按钮单击,某个任务完成时间,经过的时间等)并指示您的代码给您回电当它发生时。

这就像拿起电话告诉别人“准备就绪时给我回电话”。回叫不会采用电话呼叫的形式,而是采用功能呼叫的形式。

你调用一个函数并将其交给回调,该函数在适当的时候回调你的回调