Ho ottenuto una sola Main-Activity in cui creo in modo dinamico le pagine all'interno di un ViewPager (tramite FragmentPagerAdapter). Fin qui tutto bene.Collegamento e interruzione del servizio Android a/da Framment (in ViewPager)
Ora ho un servizio-Implementazione Voglio che l'attività/quei frammenti si leghino a. E questo è il punto che mi chiedo quale sia la migliore pratica.
- Associazione all'attività e comunicazione dal frammento al servizio tramite richiamata tramite l'attività? (vincolante/non vincolante in onCreate()/onDestroy())
- Legare a ogni frammento sulla creazione e separare una volta distrutto? (come sopra)
Entrambe le implementazioni sembrano funzionare. Ma la seconda offre una comunicazione più dritta con il servizio.
Durante il test, i secondi frammenti sono obbligati a eseguire il servizio durante la creazione. Ma quando rimuovo tutti tranne uno, non sembrano essere distrutti. Quando inizio a creare nuovamente frammenti da quel punto (solo 1 frammento dopo aver eliminato altri), il binding al servizio avviene solo quando creo più frammenti di quelli creati in precedenza.
Forse di nuovo per una migliore panoramica.
- creare attività con un frammento in pager: servizio collegato a frammentare
- creare altre 2 frammenti di cercapersone: servizio conntected su ogni creazione
- eliminando tutti ma un frammento: unbinding sembra non essere chiamato
- creare altre 2 frammenti ancora: servizio sembra non essere collegato
- creare un altro frammento: servizio conntected sulla creazione
È questo il comportamento che ci si può aspettare? È questa l'implementazione che dovrei scegliere; comunicazione chiaramente più marcata come nella callback-communication?
Grazie per l'input in anticipo!
Ho costruito uno scenario simile usando il tuo primo approccio (l'attività gestisce la comunicazione al servizio) e ha funzionato abbastanza bene. Ciò mi consente di condividere la connessione di servizio su tutti i frammenti e di consentire al "più" accesso immediato al servizio (senza dover fare i conti con l'asincronia di binding) – roostertech