2017-03-03 6 views
1

J'utilise greenrobot comme EventBus pour poster une events.everything collante fonctionne très bien et quand j'ouvre l'application ex. le contenu est montré qui montre le poste collant fonctionne bien. Mais quand je ferme l'application et l'ouvre pour la deuxième, troisième, ... heure, il n'y a pas d'ex. contenu a montré ce qui signifie que l'événement collant n'a pas été posté. Sticky événement afficher une seule fois! Pourquoi? Est-ce normal ou est-ce un bug?EventBus collant appels poste une fois

J'utilise le code ci-dessous dans onPostExecute de AsyncTask.

EventBus.getDefault().postSticky(new SliderBusModel(SlideID,SlideImage,SlideType,SlideTitle)); 

Répondre

1

Comme par document, seul dernier événement collant reste dans la mémoire jusqu'à ce que vous le supprimer manuellement en appelant removeStickyEvent(stickyEvent) dire qu'un seul événement collant restera en mémoire à un moment donné. Si vous avez déjà un événement collant dans la mémoire et que vous postez un autre événement collant, le précédent sera perdu. Vérifiez votre code si votre événement existant est supprimé par un autre événement. Lire ci-dessous:

Certains événements portent des informations intéressantes après la publication de l'événement . Par exemple, un événement signale qu'une partie de l'initialisation est terminée. Ou si vous avez des données de capteur ou d'emplacement et que vous voulez conserver les valeurs les plus récentes. Au lieu d'implémenter votre propre cache , vous pouvez utiliser des événements persistants. Alors EventBus maintient le dernier événement collant d'un certain type en mémoire. Ensuite, l'événement collant peut être livré aux abonnés ou explicitement interrogé.