Sobes.tech
Junior — Middle

Em que casos o registo de um Broadcast Receiver no manifesto Android é proibido?

sobes.tech IA

Resposta da IA

O registo do Broadcast Receiver no manifesto do Android não é permitido nos seguintes casos:

  • Para eventos dinâmicos ou privados: Se o receptor deve responder apenas a eventos que ocorrem dentro da aplicação ou a eventos que não devem estar disponíveis para outras aplicações, é melhor registá-lo programaticamente (dinamicamente) através de registerReceiver() no código.

  • Para alguns eventos do sistema nas novas versões do Android: A partir do Android 8.0 (API 26), muitas mensagens de difusão do sistema (por exemplo, ACTION_NEW_PICTURE, ACTION_NEW_SMS) não podem ser registadas no manifesto para reduzir a carga no sistema e melhorar a segurança. Nestes casos, os receptores devem ser registados dinamicamente.

  • Se for necessário controlo do ciclo de vida: Registar no manifesto faz com que o receptor esteja ativo constantemente, o que pode levar a um consumo desnecessário de recursos. Se for necessário que o receptor funcione apenas em determinados momentos (por exemplo, quando uma atividade está ativa), o registo deve ser feito de forma dinâmica.

Assim, o registo no manifesto não é permitido ou não é eficiente para eventos que só devem ser processados quando a aplicação está ativa ou para eventos do sistema que são proibidos para registo estático nas novas versões do Android.