Не идеальное решение для очень крупных проектов, но:
Вы можете использовать EventBus для отправки события из одного места в другое.
Сначала отправьте сообщениекласс:
public static class MessageEvent { /* Additional fields if needed */ }
Отправка данных из любого места с использованием:
EventBus.getDefault().post(new MessageEvent());
и получение их путем регистрации действия на шине событий:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
Добавить это действиечтобы получать уведомления при получении сообщения:
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {/* Do something */};
Добавьте его в gradle, используя его код зависимости:
implementation 'org.greenrobot:eventbus:3.1.1'