Comment puis-je configurer Roboguice d'utiliser la même instance de EventBus lorsqu'il est injecté dans mes activités et récepteurs de diffusion comme ceci:Comment injecter un google guava eventbus en tant que singleton global en utilisant Roboguice dans android?
@Inject EventBus eventBus;
C'est-à-dire: autant que je comprends, le bus de l'événement doit être un processus global singleton pour que les événements postés dans les récepteurs de diffusion soient souscrits dans mes activités. Actuellement, cependant, il me semble obtenir un bus d'événement distinct pour chaque injection.
Votre réponse a fonctionné pour moi. Je suis curieux, cependant, comment votre suggestion de plusieurs bus d'événements fonctionnerait. Comment une activité s'abonne-t-elle aux événements de plusieurs eventBus? Souhaitez-vous injecter plusieurs événements dans l'activité? Comment un récepteur de diffusion pourrait-il spécifier quel eventBus devait être injecté? – JohnRock
@TheLizardKing oui je vois ce que tu veux dire. Vous devez vous assurer que l'instance 'EventBus' est partagée entre l'écouteur (ou l'abonné) et l'afficheur d'événements (récepteur de diffusion), de sorte que, bien qu'il n'y ait pas de singleton global, vous vous assurez toujours que votre eventBus est partagé par au moins deux objets , sinon il n'y a pas de communication évidemment. Eh bien, vous pouvez utiliser un «fournisseur» pour cela. Il peut être injecté lui-même. Voir cette réponse, par exemple: http://stackoverflow.com/a/18358445/168719 –