Служба (абонент шины событий) не получает сообщение от Activity - PullRequest
0 голосов
/ 01 декабря 2019

NotificationEvent Class (POJO)

public class NotificationEvent {
LoggedInUserInterface liui;
public NotificationEvent(LoggedInUserInterface liui) {
    this.liui = liui;
}

}

1005 * MyFirebaseMessagingService (абонент)
LoggedInUserInterface liui;
@Override
public void onCreate() {
    super.onCreate();
    EventBus.getDefault().register(this);
}

@Override
public void onDestroy() {
    EventBus.getDefault().unregister(this);
    super.onDestroy();
}

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onMessageEvent(NotificationEvent notificationEvent) {
    LoggedInUserInterface liui = notificationEvent.liui;
    this.liui = liui;
    Log.d("notifyUser", "EventBus call received in service");
}

Моя активность (постер)

1010

Ошибка

EventBus: No subscribers registered for event class com.myCompany.myApp.NotificationEvent
No subscribers registered for event class org.greenrobot.eventbus.NoSubscriberEvent

Успешный журнал

Activity post call done

Неудачный журнал

EventBus call received in service

Я пробовал липкие и не липкие безрезультатно. Помощь приветствуется

1022 * UPDATE 1026 * Я могу подтвердить, что это работа шины событий и реальная проблема заключается в следующем: служба работает только тогда, когда уведомление будет получено. Это является проблемой, поскольку службе требуется обновленная строка из основного действия при каждом создании действия, а не только при получении уведомления.

ВОЗМОЖНОЕ РЕШЕНИЕ HACKY

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

1 Ответ

0 голосов
/ 01 декабря 2019

Вы можете попробовать удалить Thread = Main Srrbice не должен работать в главном потоке

...