Conhecendo as estruturas de apps Android: atividades, fragmentos e broadcast receivers

Exemplos de uso de intent em aplicativos

1. Aplicativos de comércio eletrônico:

  • Explicit Intent: Inicia Activity detalhes do produto quando o usuário clica em um item na lista de produtos.
  • Implicit Intent: Compartilhe detalhes do produto em aplicativos de mídia social ou e-mails.

2. Aplicativos de mídia social:

  • Explicit Intent: Inicia um Activity de comentários quando o usuário clica no botão “Exibir comentários”.
  • Implicit Intent: Abre um link externo no navegador padrão do usuário.

3. Aplicativos de música:

  • Explicit Intent: Inicia Service para reproduzir uma música em segundo plano.
  • Implicit Intent: Compartilhe músicas com outros aplicativos como WhatsApp ou Instagram.

4. Broadcast Receiver: Respondendo às mudanças do sistema

Broadcast Receiver é um componente essencial em um aplicativo Android que permite que seu aplicativo responda a Broadcast Intent enviados pelo sistema Android ou outros aplicativos. Broadcast Intent é uma mensagem do sistema que informa sobre uma alteração no status ou um evento específico, como uma alteração no status da bateria, conectividade de rede ou uma mensagem SMS recebida.

Ao usar Broadcast Receiver, você pode criar aplicativos mais responsivos às mudanças no ambiente ou no sistema, proporcionando assim uma melhor experiência do usuário.

Como funciona o Broadcast Receiver

Broadcast Receiver é executado em segundo plano e não tem interface de usuário. Eles são projetados para responder a Broadcast Intent de forma rápida e eficiente. Aqui estão alguns pontos-chave sobre como funciona o Broadcast Receiver:

1. Inscrição:

  • Broadcast Receiver deve ser registrado no sistema Android para responder a Broadcast Intent.
  • O registro pode ser feito tanto estático (via AndroidManifest.xml) quanto dinâmico (via código do programa).

Exemplo de registro estático no AndroidManifest.xml:

   <receiver android:name=“.MyBroadcastReceiver”>
     <intent-filter>
   <action android:name=“android.intent.action.BATTERY_LOW” />
   </intent-filter>
   </receiver>

Exemplo de registro dinâmico no código:

   IntentFilter filter  new IntentFilter(Intent.ACTION_BATTERY_LOW);
     MyBroadcastReceiver receiver   new MyBroadcastReceiver();
    registerReceiver(receiver,  filter);

2. Tempo de execução limitado:

  • Broadcast Receiver teve apenas cerca de 5 segundos para concluir a tarefa.
  • Se uma tarefa demorar mais, como baixar dados ou processar arquivos, recomendamos que você inicie Service ou use WorkManager.

3. Tarefas factíveis:

  • Enviar notificações: notifique os usuários sobre alterações de status, como bateria fraca ou conexões com a Internet.
  • Iniciar serviço: Inicie  o serviço para executar tarefas em segundo plano, como sincronização de dados.
  • Atualizar dados: atualize dados locais ou envie dados para um servidor.

Tipos de intenção de transmissão

Broadcast Intent pode ser dividido em dois tipos:

1. Normal Broadcast:

  • Enviado de forma assíncrona para todos os Broadcast Receiver registrados.
  • Exemplo: ACTION_BOOT_COMPLETED (enviado quando o dispositivo termina de inicializar).

2. Ordered Broadcast:

  • Enviado sequencialmente para um Broadcast Receiver de cada vez.
  • Broadcast Receiver pode modificar os resultados ou impedir a propagação de Broadcast Intent.
  • Exemplo: ACTION_NEW_OUTGOING_CALL (enviado quando um usuário faz uma chamada de saída).

Exemplos de uso do receptor de transmissão

1. Respondendo a trocas de bateria:

  • Broadcast Receiver pode detectar quando a bateria do dispositivo está fraca (ACTION_BATTERY_LOW) ou carregando (ACTION_BATTERY_OKAY).
  • Exemplo: enviar uma notificação ao usuário quando a bateria estiver fraca.

Últimos artigos