Entendendo os receptores de transmissão no Android

Os receptores Android Broadcast são parte integrante e usados ​​para receber e manipular eventos ou transmissões em todo o sistema e em todo o aplicativo. Eles são registrados no sistema para receber transmissões enviadas pelo sistema ou outros aplicativos.

Os receptores de transmissão são usados ​​para executar tarefas quando um evento específico ocorre no sistema, como bateria fraca, reinicialização do dispositivo ou execução de uma ação específica no aplicativo.

Os receptores de transmissão são úteis em vários cenários, como atualização de componentes de interface do usuário, resposta a eventos de todo o sistema, início ou interrupção de serviços ou exibição de notificações. Por exemplo, um receptor de transmissão pode ser usado para detectar quando um usuário conecta ou desconecta um fone de ouvido e, em seguida, realiza ações como pausar ou retomar a reprodução de música.

Para criar um broadcast receiver, você precisa estender a classe BroadcastReceiver e implementar o método onReceive() .

Este método é chamado quando o receptor recebe uma transmissão. No método onReceive() , você pode obter os dados passados ​​no intent de transmissão e realizar a ação desejada.

O exemplo abaixo ilustra como criar um broadcast receiver no Android:

public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Do something when a broadcast is received
}
}


Tipos de receptores de transmissão

Existem dois tipos de Broadcast Receivers no Android:

Receptor de Transmissão Estática

Como o próprio nome sugere, o Static Broadcast Receiver é declarado estaticamente no AndroidManifest.xml.

O sistema registra e cancela o registro automaticamente quando um aplicativo é instalado e desinstalado.

Para receber eventos no nível do sistema, como bateria fraca ou modo avião alterado, os receptores de transmissão estáticos são úteis.

Porque eles podem ser registrados mesmo quando um aplicativo não está em execução.

Para registrar um receptor estaticamente no arquivo AndroidManifest.xml, adicione o seguinte código:

<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.broadcast.MY_ACTION" />
</intent-filter>
</receiver>

Receptor de transmissão dinâmica

Com o método registerReceiver() , o Dynamic Broadcast Receiver pode ser registrado e cancelado programaticamente no tempo de execução.

Ao contrário do Broadcast Receiver estático, este não é declarado no AndroidManifest.xml.

Esses receptores são úteis quando você deseja receber eventos no nível do aplicativo que são gerados durante o tempo de execução e não estão disponíveis durante a instalação.

Para registrar um receptor dinamicamente por meio de código, você pode usar o método registerReceiver() :

MyBroadcastReceiver myReceiver = new MyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter("com.example.broadcast.MY_ACTION");
registerReceiver(myReceiver, intentFilter);

Ciclo de vida do receptor de transmissão

Os Broadcast Receivers têm um ciclo de vida diferente de outros componentes do Android, como Activities e Services.

A vida útil de um Broadcast Receiver é limitada por seu método onReceive() , que é chamado pelo sistema quando ocorre um evento.

Após a conclusão do método onReceive(), o Broadcast Receiver é destruído.

O exemplo a seguir implementa um Broadcast Receiver para ouvir o evento de bateria fraca:

Crie uma nova classe Java que estenda BroadcastReceiver:

public class BatteryBroadcast extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Intent.ACTION_BATTERY_LOW)) {
Toast.makeText(context, "Battery is low!", Toast.LENGTH_SHORT).show();
}
}
}

Registre o Broadcast Receiver no arquivo AndroidManifest.xml:

<receiver android:name=".BatteryBroadcast">
<intent-filter>
<action android:name="android.intent.action.BATTERY_LOW" />
</intent-filter>
</receiver>

Sempre que o nível da bateria cai abaixo de um determinado limite, o sistema transmite o evento BATTERY_LOW e o método onReceive() do Broadcast Receiver registrado é chamado. Neste exemplo, o Broadcast Receiver exibe uma mensagem Toast quando a bateria está fraca.

Nós valorizamos o seu feedback.
+1
0
+1
1
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone