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在其自己的獨立進程中運行,就像完全不同的應用程序一樣。

這就像試圖從另一個完全不同的應用程序在一個應用程序中激發事件。您需要找到與您的服務進行通信的不同方式,或者將所有需要在同一過程中進行通信的組件進行放置。