2010-06-17 31 views
5

Desidero creare un'app che contiene un servizio S e un'attività A. Il servizio S è responsabile della preelaborazione, come la preparazione dei dati mostrati sull'interfaccia utente dell'attività A, prima dell'attività A viene invocato.Android - interazione servizio e attività

Voglio essere in grado di richiamare il servizio S da fuori del pacchetto, ad esempio da un altro Android Classe di attività B, effettuare la pre-elaborazione, e poi, quando i dati sono pronti, richiamare Attività A.

Le mie domande sono:

  1. Qual è il modo migliore per condividere i dati tra il servizio S e l'attività A?
  2. In che modo l'attività esterna B può comunicare con il servizio S per determinare se è stata completata con tutta la sua preelaborazione e l'attività A è pronta per essere invocata?

Grazie Chris

+0

Posso essere in grado di utilizzare un ricevitore Broadcast per fare in modo che il Servizio comunichi all'attività esterna che è stata eseguita la sua pre-elaborazione? – Chris

risposta

7

Qual è il modo migliore per condividere i dati tra il Servizio S e Attività A?

Utilizzare il modello di legame locale e hanno attività un binding a servizio S, quindi chiamare API esposte del servizio per recuperare ciò che è necessario.

Come può l'attività esterna B comunicare con il servizio S per determinare se si è completato con tutti la sua pre-elaborazione, e l'attività A è pronto per essere richiamato?

Utilizzare il modello di rilegatura remoto e AIDL. L'attività B registrerebbe un callback definito da AIDL con Service S, che il servizio invocerebbe quando appropriato. Vedere here e here per un esempio.

+0

Finalmente ha senso! Grazie! – Chris

Problemi correlati