2

Я не размещать EventBus.getDefault().post(new SendPlayer(player)); от сервисно, который работает в не основной поток:Нет подписчиков на события вывешенные от фонового сервиса

<service 
    android:name=".player.PlayerService" 
    android:process=":player" 
    android:enabled="true" 
    android:exported="true"> 
</service> 

Я ожидаю получить даже в моем фрагменте:

@Subscribe(threadMode = ThreadMode.MAIN) public void onEvent(SendPlayer event) { 
    Log.w("mcheck", "onEvent"); 
} 

Однако , Я получаю сообщение:
D/EventBus: No subscribers registered for event class yarh.com.tryexo.player.SendPlayer.

События доставляются, только если я удалю android:process=":player".

Это ошибка, или я неправильно понял поток событий проводки между фоновым потоком и основной нитью?

+0

просто используйте 'связанный сервис' узор (скорее всего используя AIDL) – pskink

ответ

2

Атрибут process приводит к тому, что ваш PlayerService запускается в отдельном отдельном процессе, как совершенно другое приложение.

Это похоже на попытку запуска события в одном приложении из другого совершенно другого приложения. Вам нужно будет найти другой способ общения с вашим сервисом или разместить все компоненты, которые должны взаимодействовать в одном и том же процессе.

 Смежные вопросы

  • Нет связанных вопросов^_^