Respostas:
Aqui está o que o Android SDK diz sobresendStickyBroadcast()
:
Execute um sendBroadcast (Intent) que é "fixo", o que significa que o Intent que você está enviando permanece após a conclusão da transmissão, para que outros possam recuperar rapidamente esses dados por meio do valor de retorno de registerReceiver (BroadcastReceiver, IntentFilter). Em todas as outras formas, ele se comporta da mesma forma que sendBroadcast (Intent).
Um exemplo de transmissão persistente enviada por meio do sistema operacional é ACTION_BATTERY_CHANGED
. Quando você chama registerReceiver()
para aquela ação - mesmo com um null
BroadcastReceiver
- você obtém a Intent
última transmissão para aquela ação. Portanto, você pode usar isso para encontrar o estado da bateria sem necessariamente registrar todas as mudanças futuras de estado da bateria.
Tipos : - Local, Normal, Ordenado e Fixo
Transmissão normal
: - use sendBroadcast ()
: - transmissão assíncrona
: - qualquer receptor recebe transmissão e não uma ordem particular
Transmissão ordenada
: - use sendOrderedBroadcast ()
: - transmissão síncrona
: - receptor recebe transmissão em base prioritária
: - também podemos simplesmente abortar a transmissão neste tipo
Transmissão Local
: - use apenas quando a transmissão for usada apenas dentro do mesmo processo
Sticky Broadcast
: - a intenção de transmissão normal não está mais disponível após ter sido enviada e processada pelo sistema.
: - use sendStickyBroadcast (Intent)
: - o intent correspondente é fixo, o que significa que o intent que você está enviando permanece após a conclusão da transmissão.
: - por causa disso, outros podem recuperar rapidamente esses dados por meio do valor de retorno de registerReceiver (BroadcastReceiver, IntentFilter).
: - além deste mesmo que sendBroadcast (Intent).
sendbroadcast()
- transmissão normal, mas podemos definir a prioridade também.
sendstickybroadcast()
- a intenção passada com isso será válida para futuros usuários que estão se registrando por meio de código (receptores dinâmicos). A transmissão que ficará com o Android e será retransmitida ou retransmitida para solicitações futuras de quaisquer receptores de transmissão
Quando alguém envia uma transmissão fixa usando, sendstickyBroadcast(intent);
então, essa transmissão estará disponível para os futuros usuários que estiverem usando receptores dinâmicos.
Mas agora você não deve usar o sendStickyBroadcast()
método, ele está obsoleto
Da documentação do Android:
Este método foi descontinuado na API nível 21. Broadcasts fixos não devem ser usados. Eles não fornecem segurança (qualquer pessoa pode acessá-los), nenhuma proteção (qualquer pessoa pode modificá-los) e muitos outros problemas. O padrão recomendado é usar uma transmissão não aderente para relatar que algo mudou, com outro mecanismo para aplicativos para recuperar o valor atual sempre que desejado
Eu espero que isso ajude.