O que há Dentro de um Intent?

O Intent, por ser um objeto compartilhado por diversos componentes do sistema, possui uma série de elementos padrões dentro dele, os quais indicam ao sistema o que fazer com cada um desses Intents. Esses elementos também indicam aos componentes que recebem o Intent informações dos dados a serem tratados. Vamos ver então quais são os campos que devem ser preenchidos nos Intents para que funcionem corretamente.

O primeiro campo de um Intent que iremos estudar é o campo action, que normalmente é configurado já na inicialização do Intent, e é o campo responsável por dizer ao Intent qual é o componente que ele deverá inicializar. É possível inicializar o componente através de uma String indicando o caminho até aquele componente, ou através de uma ação padrão do Android.

Existe várias Actions padrões no Android. Dentre elas, podemos citar alguns exemplos:

  • ACTION_VIEW - iniciar uma nova Activity
  • ACTION_CALL - fazer uma chamada telefônica
  • ACTION_SEND - enviar informações, como uma mensagem de texto por exemplo
  • ACTION_WEB_SEARCH - realizar uma pesquisa web

Outro campo de igual importância aos Intents é o campo data. Esse campo passa os dados necessários a uma Intent. Um exemplo disso seria criar um link para enviar e-mails no perfil de uma pessoa em uma aplicação de uma rede social. Quando o usuário tocar nesse link, o aplicativo no dispositivo responsável pelos e-mails será inicializado, sendo preenchido o campo e-mail com o e-mail do usuário passado no campo data. Vejamos, na Listagem 1, um exemplo com valores que podemos utilizar em um Intent de nossa aplicação.

Listagem 1 - Intent para fazer uma chamada telefônica

Um Intent criado utilizando a ação ACTION_DIAL e os dados tel:12345678, será lançado para a aplicação responsável pelas chamadas do aparelho, já preenchendo o número a ser discado com o número passado nos dados, no caso 12345678. Esse é um exemplo de como qualquer aplicação pode lançar serviços padrões do sistema, como o serviço de chamadas.

Outro campo existente é o category. Como veremos adiante, quando estudarmos os Intent Filters, os componentes, quando definidos, definem também uma categoria ao qual eles vão pertencer. Essas categorias fornecem informações extras em relação ao componente que deve responder ao Intent. Um exemplo disso seria utilizar a categoria CATEGORY_PREFERENCE. Essa categoria indica que a Activity alvo é um painel de preferências. Existem diversas outras categorias de Intent. Essas categorias podem ser vistas no autocompletar do Android Studio, em um campo relacionado, ou na página do Android Developers, citada nas referências.

Na sequência, temos o campo component. Esse campo é o responsável por indicar qual o nome do componente que o Intent é destinado. Funciona como um “endereço”, indicando exatamente qual o componente que irá receber o Intent. Normalmente, os Intents são entregues ao componente que tem os requisitos descritos nos campos action, data e category, e não diretamente endereçados. Mesmo assim, é importante saber que é possível direcionar o chamado a um componente específico através desse campo.

Por fim, o último campo que compõe um Intent é o campo extras. Esse é o campo responsável por carregar valores extras que devem ser passados junto ao Intent. As informações são colocadas dentro de um Bundle e enviadas. Para exemplificar, imagine que temos uma lista de mensagens e, quando clicamos em alguma delas, abrimos uma Activity para exibir e editar essa mensagem. Para que essa segunda Activity possa exibir a mensagem que havia sido selecionada, ela deve receber as informações da mensagem, como título, corpo, etc., sendo passadas dentro dos extras do Intent.

Agora que já conhecemos como é composto um Intent, podemos passar a estudar os dois tipos de Intent que existem.

Versão 5.3 - Todos os Direitos reservados