Я знаю, что есть похожие вопросы, но он все еще не отвечает на мой вопрос так, как мне нужно в моей текущей ситуации.
У меня есть три докладчика активности, каждый из которых должен вызывать определенные данные удаленно, поэтому при поступлении данных будет вызываться докладчик активности. Для создания этого прослушивателя данных я создал интерфейсный прослушиватель, и, поскольку все три докладчика запрашивают одни и те же данные и извлекают их, все три докладчика реализуют этот прослушиватель интерфейса.
Интерфейсный слушатель:
interface ListenerInterface {
onGotData();
}
Ведущий один:
class PresenterOne implements ListenerInterface{
public void getData() {
DataManager dataManager = new DataManager();
dataManager.getData(this);
}
@Override
public void onGotData(Data data) {
//Do something with data
}
}
Ведущий два очень похож на ведущего:
class PresenterTwo implements ListenerInterface{
public void getData() {
DataManager dataManager = new DataManager();
dataManager.getData(this);
}
@Override
public void onGotData(Data data) {
//Do something with data
}
}
Предположим, что Presenter Three точно такой же, как и предыдущий. Класс менеджера данных:
class DataManager {
public void getData(final ListenerInterface listener) {
//Gets data
addOnCompleteListener(new OnCompleteListener<Data data > () {
@Override
public void onComplete (@NonNull DataCall < Data > dataCall) {
listener.onGotData(dataCall.getResults());
}
});
}
}
Будет ли при этом кто-нибудь вызывать всех трех докладчиков, поскольку интерфейс выполняет вызов, или будет вызывать только переданного докладчика? Есть ли что-то, о чем мне стоит беспокоиться, если я пойду по пути? Если кто-то, кто хорошо знает платформу Android, мог бы дать подробный ответ, чтобы я мог узнать из него больше, это было бы здорово.
Причина, по которой я хочу это сделать, заключается в том, что я хочу общаться через интерфейсы между классами.
Извините, если этот вопрос прост для некоторых людей, но я все еще учусь.
Заранее большое спасибо.