2014-07-16 16 views
5

Uso la lib di EventBus GreenRobot su Android.Quando deve essere rimosso removeStickyEvent (...)?

Qualcuno potrebbe dirmi, qual è la procedura migliore per chiamare removeStickyEvent (...)? Su-Azione, pulsante indietro premuto, ...?

Grazie ragazzi.

+2

Ciò dipende interamente da ciò per cui si sta utilizzando l'evento appiccicoso. – CommonsWare

+0

Questo ha senso. Ho fatto quella domanda perché ho paura di creare eventi appiccicosi che potrebbero non essere consumati e rimanere inutili nella memoria. – Patrick

risposta

6

Per rispondere alla domanda sull'oggetto Event che rimane in memoria: solo l'ultimo evento appiccicoso inviato rimane in memoria per ogni tipo specificato.

Dai un'occhiata alla fonte here.

Fondamentalmente per riepilogare: Eventbus mantiene una mappa di stickyEvents con la chiave che è il tipo di classe e il valore è il campo. Pertanto, quando viene pubblicato un nuovo evento appiccicoso con EventBus.postSticky(event), l'evento registrato sovrascrive il vecchio evento. Quindi penso che tu sia al sicuro dal costruire molti eventi appiccicosi.

Anche a me ero preoccupato. Mi piacerebbe che fosse spiegato meglio nei documenti ma almeno il suo open source in modo che possiamo guardare dentro e vedere cosa sta succedendo.

Immagino di rispondere alla tua domanda in modo più completo. Quando dovresti rimuovere un evento appiccicoso? Quando non vuoi che le chiamate ottengano l'evento appiccicoso per non restituire nulla. Quando esattamente questo è un requisito specifico dell'applicazione. In bocca al lupo.

Problemi correlati