Middle
Que tipos de BroadcastReceiver você conhece?
sobes.tech IA
Resposta da IA
-
Transmissão Ordenada:
- A transmissão é entregue aos destinatários sequencialmente, um após o outro.
- Cada destinatário pode processar ou modificar o resultado da transmissão, bem como interrompê-la para que não chegue aos destinatários seguintes.
- A ordem de entrega é determinada pela prioridade do destinatário (
android:priorityno manifesto).
-
Transmissão Normal:
- É o tipo mais comum.
- A mensagem de difusão é enviada imediatamente a todos os destinatários interessados, registados tanto de forma declarada (no manifesto) como dinamicamente (através de
Context.registerReceiver()). - A ordem de receção das mensagens não é garantida.
- O destinatário não pode parar a propagação da mensagem.
-
Transmissão Local:
- Usada para trocar mensagens apenas dentro de uma mesma aplicação.
- Implementada pela classe
LocalBroadcastManager. - É mais eficiente e segura, pois as mensagens não saem da aplicação e não afetam outras aplicações no sistema.
- Não requer declarar destinatários no manifesto.
- Reduz a carga no sistema em comparação com transmissões globais.
// Exemplo de registo de um BroadcastReceiver dinâmico
BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Lógica de processamento da mensagem
}
};
IntentFilter filter = new IntentFilter("MY_ACTION");
registerReceiver(myReceiver, filter);
// Exemplo de envio de Transmissão Normal
Intent broadcastIntent = new Intent("MY_ACTION");
sendBroadcast(broadcastIntent);
// Exemplo de uso do LocalBroadcastManager
// Obtenção da instância
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(this);
// Registo
localBroadcastManager.registerReceiver(myReceiver, filter);
// Envio
localBroadcastManager.sendBroadcast(broadcastIntent);
// Exemplo de envio de Transmissão Ordenada
// sendOrderedBroadcast(orderedBroadcastIntent, null); // Pode indicar permissão