tangguo

如何在Android中定义回调?

android

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

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

Google io演示幻灯片

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

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

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


阅读 335

收藏
2020-11-05

共1个答案

一尘不染

在许多情况下,您都有一个接口并传递实现该接口的对象。例如,对话框具有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中的语法。这还为时过早。

2020-11-05