differenza LocalBroadcastManager, EventBus è più semplice da usare. Si passa solo tramite 3 passaggi:
1- Creare una classe di evento. Una semplice classe Java che rappresenta la risposta quando si verifica l'azione .
2- registrare il bus evento come un abbonato nella vostra attività onCreate metodo
EventBus.getDefault().register(this);
E, naturalmente, annullare la registrazione nella vostra attività OnDestroy metodo
EventBus.getDefault().unregister(this);
3- Viene creato il metodo di sottoscrizione nella stessa attività registrata per l'EventBus. Esempio in WorkOrderActivity
@Subscribe
public void onEvent(EventClass event)
Quando si verificano l'evento, si deve chiamare il metodo post, passando l'oggetto evento creato prima.
EventBus.getDefault().post(new EventClass (Data));
Come kmaini detto, è possibile sostituirlo con LocalBroadcastManager, ma si dovrà mappare i dati l'intento da soli. A differenza di EventBus che può passare oggetti.
Inoltre, GreenRobot, i creatori di EventBus Biblioteca, risposto a questa domanda here:
D: Come è diverso da EventBus/Intent sistema di Android BroadcastReceiver ?
A: A differenza del sistema BroadcastReceiver/Intent di Android, EventBus utilizza le classi Java standard come eventi e offre un'API più conveniente. EventBus è destinato a molti altri casi di utilizzo in cui non si desidera passare senza problemi di impostazione di Intenti, preparazione di Intenti extra, implementazione di ricevitori broadcast ed estrazione di Intenti extra. Inoltre, EventBus ha un overhead molto più basso.
Non ho usato Greenrobot Event ma non posso commentare in merito. Ma in generale, se la comunicazione è tra attività e servizio dello stesso processo, è meglio usare LocalBroadcastManager piuttosto che BroadcastReceiver. – kmaini
@kmaini c'è qualche esempio o collegamento che hai trovato utile per te? –