Ho un'applicazione Android che è vincolante per un servizio persistente (una volta avviato con startService()
).Legare/rilegare in modo pulito a un servizio in un'applicazione
Il servizio è parte integrante dell'applicazione e viene quindi utilizzato in quasi tutte le attività. Quindi voglio legare al servizio una sola volta (invece di legare/slegare in ogni attività) e mantenere l'associazione durante la vita della mia applicazione.
Ho esteso da Application e associo al servizio in Application#onCreate(). Tuttavia Ora ho il problema che non so quando esiste la mia applicazione in quanto Application#onTerminate() viene mai chiamato, vedi JavaDoc:
Questo metodo è per l'uso in ambienti di processo emulati. Non sarà mai essere chiamato su un dispositivo Android di produzione, in cui i processi vengono rimossi semplicemente uccidendoli; nessun codice utente (incluso questo callback) è eseguito quando lo si fa.
Quindi, come posso eliminare in modo pulito da un servizio associato in Applicazione?
In che modo il vostro servizio sopravvive alle rotazioni dello schermo? –
Cosa intendi? Un servizio in Android non ha un'interfaccia utente quindi continua a essere in esecuzione. In questo caso il servizio è stato precedentemente avviato con 'context.startService()' ed è contrassegnato come appiccicoso, quindi viene eseguito finché non viene arrestato manualmente o si arresta automaticamente. –
Capisco. Stavo pensando che il rilascio del binding avrebbe interrotto il servizio, ma non in questo caso di servizio ibrido. L'associazione viene rilasciata al fine di evitare una connessione di servizio trapelata. –