Во время нового Google IO была презентация о реализации успокоительных клиентских приложений. К сожалению, это было только обсуждение высокого уровня без исходного кода реализации.
В этой схеме на обратном канале существуют всевозможные обратные вызовы к другим методам.
Как я объявляю, каковы эти методы?
Я понимаю идею обратного вызова - часть кода, который называют после того, как определенный случай произошел, но я не знаю, как реализовать его. Единственным путем я реализовал обратные вызовы, до сих пор переопределяли различные методы (onActivityResult, например).
Я чувствую, что у меня есть основное понимание шаблона разработки, но я продолжаю сбиваться с толку о том, как обработать обратный канал.
Во многих случаях у вас есть интерфейс и передается объект, который его реализует. Например, в диалогах есть 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. Рано.