后台服务发布的事件没有订阅者

No subscribers for events posted from background service

我postEventBus.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" 时才会传送事件。

这是错误还是我误解了后台线程和主线程之间的 posting 事件流?

process 属性使您的 PlayerService 到 运行 在它自己的单独进程中,就像一个完全不同的应用程序。

这就像试图从另一个完全不同的应用程序中触发一个应用程序中的事件。您将需要找到一种不同的方式来与您的服务通信,或者将所有需要通信的组件放在同一个进程中。