Ответ 1
Вам необходимо зарегистрировать Абонента, а не эмиттера.
Итак, удалите регистрацию/отмену регистрации из своего приложения, если вы ожидаете получить событие. Если это так, просто добавьте метод onEvent
(AnyEvent event) в класс Application.
Затем зарегистрируйте EventBus в своей службе в onStart()
и отмените регистрацию в onStop()
.
Он должен работать лучше.
В приложении
public class MyApp extend Application {
@Override
public void onCreate() {
super.onCreate();
...
EventBus.getDefault().post(new SetSongList(songArraList, 0));
}
}
или в вашей деятельности
public class MyActivity extend Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
EventBus.getDefault().post(new SetSongList(songArraList, 0));
}
}
и в вашем сервисе
public class MyService extends Service {
...
@Override
public void onCreate() {
super.onCreate();
EventBus.getDefault().register(this);
}
@Override
public void onDestroy() {
EventBus.getDefault().unregister(this);
super.onDestroy();
}
public void onEvent(SetSongList event){
// do something with event
}
...
}