Tempo de vida do BroadcastReceiver em relação às alterações do Android O
Se eu declarar umBroadcastReceiver
através do arquivo mainfest para uma transmissão do sistema (digamos, por exemplo,ACTION_POWER_DISCONNECTED
), o sistema o chamará toda vez que a transmissão específica for enviada, para que a vida útil do BroadcastReceiver seja irrestrita.
Mas também há transmissões que não podem ser registradas pelo arquivo de manifesto. Para essas transmissões, precisamos chamarcontext.registerReceiver
com um correspondenteIntentFilter
. Digamos que eu crie um BroadcastReceiver paraBOOT_COMPLETED
e ligarcontext.registerReceiver
a partir dele e nunca ligueunregisterReceiver
este receptor também vive para sempre (até que o telefone seja reiniciado)?
Os aplicativos direcionados ao Android O não podem mais registrar receptores de transmissão para transmissões implícitas no manifesto. Uma transmissão implícita é uma transmissão que não segmenta esse aplicativo especificamente.
Se minha conjectura de cima estiver correta, isso seria uma solução fácil para a alteração do sistema (é claro que você não deve fazer dessa maneira, mas seria possível). O mesmo acontece com umBroadcastReceiver
que é registrado após umBOOT_COMPLETED
broadcast tem a mesma duração (permanece até a próxima reinicialização) que um BroadcastReceiver que é registrado automaticamente através do manifesto?