EventBus
EventBus copied to clipboard
The service cannot receive eventbus events.
MyService.java
@Override
public void onCreate() {
super.onCreate();
EventBus.getDefault().register(this);
}
@Override
public void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMyEvent(MyEvent event){
Log.e(TAG,"onEvent");
}
MyFragment.java
EventBus.getDefault().post(new MyEvent());
manifast.xml
<application
android:name="com.xxxx"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute">
<service android:name=".MyService" />
======================================================= ps1: MyFragment send the event after MyService started. ps2: EventBus version : 3.1.1 android minSdkVersion 14 android targetSdkVersion 28
As the service listens on the main thread to the event, the event might get queued on the main thread event queue and not be delivered before the service is destroyed? And in general: does your code make sure the service is between the created and destroyed state?
Anyhow, this programming question is probably something to ask on Stack Overflow.