Sto cercando di capire le principali differenze tra la registrazione di un BroadcastReceiver nel Manifesto e la registrazione a livello di codice ...differenza principale tra manifesto programmatico e la registrazione di BroadcastReceiver
La mia comprensione è sostanzialmente la seguente (apprezzerebbe qualcuno correggendo la mia indica se mi manca qualcosa).
Registrato nel manifesto:
- Il sistema operativo sarà magicamente trovare e istanziare la classe, se necessario, chiamare il metodo OnReceive(), a prescindere quello che lo stato in esecuzione della vostra applicazione era
- vostro ricevono verrà chiamato una sola volta per trasmissione (cioè puoi considerare che registrarsi nel manifest è come registrare la tua 'classe' per ricevere la trasmissione - e la trasmissione istanzia la tua classe come necessario) (??)
registrato a livello di programmazione:
- registrazione in codice indica che si sta registrando istanze della tua classe per ricevere i messaggi broadcast (vale a dire se il tuo codice è un po 'sciatto e riesci a registrarti più volte, ti ritroverai con più istanze di BroadcastReceiver tutte con il loro onReceive() chiamato per una trasmissione
- per annullare la registrazione, è necessario annullare la registrazione dell'istanza di BroadcastReceiver specifica che precedentemente registrato
- se l'applicazione viene distrutta dal sistema operativo, il metodo vostra OnReceive() non sarà chiamato per una trasmissione
grazie
E suppongo che se il servizio si arresta in modo anomalo in cui il tuo broadcastreceiver è dichiarato nel manifest, il destinatario riceverà comunque i messaggi ... – Boy
@ Boy: Sì, dovrebbe. – CommonsWare
per favore puoi cercare se quello relativo al mio problema: http://stackoverflow.com/questions/29728000/wifi-changed-status-affecting-my-app –