Percy

Android中的回调是什么?

java

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


阅读 239

收藏
2020-12-01

共1个答案

小编典典

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

这是一个例子:

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中,在活动和片段之间使用回调。因为片段应该是模块化的,所以您可以在Fragment中定义一个回调以调用Activity中的方法。

2020-12-01