mi piace questa spiegazione:
servizi avviati sono facili da programmare per il semplice interazioni modo da un'attività ad un servizio, tuttavia, hanno bisogno più complessa e la programmazione ad hoc per conversazioni bidirezionali prolungate con i loro client .
Al contrario, i servizi associati possono essere una scelta migliore per ulteriori interazioni a doppio senso complesse tra attività e servizi. Per esempio , supportano le conversazioni bidirezionali.
Quindi, come hai detto, se vuoi interagire con il servizio usa il servizio associato. Con i servizi avviati (o servizi di intenti) si potrebbe fare, solo che richiederebbe una programmazione più complessa. (di Douglas Schmidt: https://www.youtube.com/watch?v=cRFw7xaZ_Mg (11'10 '')):
Ecco una sintesi che mi ha aiutato a capire (grazie Doug):
Infine, un ultimo legame che mi ha aiutato anche: http://www.techotopia.com/index.php/An_Overview_of_Android_Started_and_Bound_Services
servizi avviati vengono lanciati da altri componenti dell'applicazione (ad esempio un'attività o anche un ricevitore broadcast) e potenzialmente eseguire a tempo indeterminato in background fino a quando il servizio viene arrestato, o viene distrutto dal ru Android sistema ntime per liberare risorse. Un servizio continuerà a funzionare se l'applicazione che è iniziato non è più in primo piano, e anche nel caso in cui il componente che originariamente iniziato il servizio viene distrutto
Un servizio legato è simile a un servizio di iniziare con l'eccezione che un servizio avviato generalmente non restituisce risultati o consente l'interazione con il componente che l'ha avviato.Un servizio associato, d'altro canto, consente al componente di avvio di interagire e ricevere risultati dal servizio.
fonte
2014-07-13 16:31:38
grazie ** user1203673 **, ho scoperto la differenza tra i due e quando usarlo. se si desidera interagire con il servizio (ad esempio inviare argomenti, ecc.), utilizzare il servizio associato e restituire l'oggetto servizio nel metodo onServiceConnected (in cui è possibile chiamare i metodi nel servizio). non puoi interagire con un servizio regolare (da un'altra classe). –