Как определить обратные вызовы в Android?

Во время нового Google IO была презентация о реализации успокоительных клиентских приложений. К сожалению, это было только обсуждение высокого уровня без исходного кода реализации.

В этой схеме на обратном канале существуют всевозможные обратные вызовы к другим методам.

google io presentation slide

Как я объявляю, каковы эти методы?

Я понимаю идею обратного вызова - часть кода, который называют после того, как определенный случай произошел, но я не знаю, как реализовать его. Единственным путем я реализовал обратные вызовы, до сих пор переопределяли различные методы (onActivityResult, например).

Я чувствую, что у меня есть основное понимание шаблона разработки, но я продолжаю сбиваться с толку о том, как обработать обратный канал.

150
задан Haywire 31 May 2016 в 01:11
поделиться

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. Рано.

215
ответ дан 23 November 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: