如何在Android中定义回调?

发布于 2021-01-30 16:38:05

在最近的Google IO中,有一个有关实现宁静的客户端应用程序的演示。不幸的是,这只是高层讨论,没有实现的源代码。

在此图中,在返回路径上,有各种不同的对其他方法的回调。

Google io演示幻灯片

如何声明这些方法是什么?

我了解回调的想法-发生某个事件后会调用一段代码,但是我不知道如何实现它。到目前为止,实现回调的唯一方法是重写各种方法(例如onActivityResult)。

我觉得我对设计模式有基本的了解,但是我继续着迷于如何处理返回路径。

关注者
0
被浏览
468
1 个回答
  • 面试哥
    面试哥 2021-01-30
    为面试而生,有面试问题,就找面试哥。

    在许多情况下,您都有一个接口并传递实现该接口的对象。例如,对话框具有OnClickListener。

    就像一个随机的例子:

    // The callback interface
    interface MyCallback {
        void callbackCall();
    }
    
    // The class that takes the callback
    class Worker {
       MyCallback callback;
    
       void onEvent() {
          callback.callbackCall();
       }
    }
    
    // Option 1:
    
    class Callback implements MyCallback {
       void callbackCall() {
          // callback code goes here
       }
    }
    
    worker.callback = new Callback();
    
    // Option 2:
    
    worker.callback = new MyCallback() {
    
       void callbackCall() {
          // callback code goes here
       }
    };
    

    我可能弄乱了选项2中的语法。这还为时过早。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看