3 回答
TA贡献1801条经验 获得超8个赞
这是一个不错的教程,很好地描述了回调和用例。
回调的概念是在另一个类中的某些工作完成时通知类同步/异步。有人称其为好莱坞原则:“不要叫我们,我们叫你”。
这是一个例子:
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在线程中完成一些工作。如果线程完成了工作,它将通过回调通知Class A并提供结果。因此,无需进行轮询或其他操作。只要有结果,您就会得到结果。
在Android中,在“活动”和“片段”之间使用回调。因为片段应该
TA贡献1828条经验 获得超13个赞
我在以下情况下使用:例如,在UI中,我从按钮获得了操作。用户想要下载一个500mb的文件。谢谢,我将初始化后台引擎(AsyncTask类)并将参数传递给他。在用户界面上,我将显示一个阻止进度对话框,并使用户无法进行其他任何单击。问题是:何时从UI删除阻止?答案是:引擎成功或失败的时间,以及回调或通知的时间。
通知和回调之间的区别是另一个问题,但是1:1的回调速度更快。
添加回答
举报