Comunicação entre Activities

A comunicação entre Activities é uma parte bastante importante em qualquer aplicação Android. É através dessa comunicação que é possível criar aplicações com telas diversas, capazes de realizar tarefas com grande precisão. Para iniciar uma nova Activity, utilizamos o comando startActivity(), passando como parâmetro um Intent que descreva a Activity a ser inicializada.

Frequentemente estaremos utilizando esse método para inicializar novas Activities dentro do contexto da nossa aplicação. Sendo assim, a maneira mais fácil e eficiente de se iniciar essas Activities é através de Intents explícitos, indicando exatamente a qual classe aquele Intent se destina. Uma vez criada uma nova Activity e declarada no Manifest, basta dizer que a classe a ser inicializada por Intent, deve ser a que foi previamente declarada.

Vejamos na Listagem 3 como criar um Intent destinado a uma Activity da nossa aplicação.

Listagem 3 - Inicializando uma Activity explicitamente.

Na Listagem 3, vemos o exemplo da criação de um Intent responsável por inicializar a Activity HelloActivity, que já deve ter sido criada e declarada no Manifest. Esse construtor de Intents recebe dois parâmetros: o contexto e o componente alvo. O contexto da aplicação pode ser passado com o parâmetro “this” caso este represente a Activity atual. Já o component deve ser preenchido com uma referência à classe que desejamos acessar. Utilizando essa forma de trabalhar com Intents, é possível criar um fluxo de telas entre as Activities do seu programa. Para ver o funcionamento disso, vamos criar essa nova Activity dentro do projeto da tela de login, utilizado na aula anterior. Essa nova Activity pode ser a padrão, apenas com o texto de “Hello Activity”. Nomeie essa Activity HelloActivity e declare-a no Manifest. A Listagem 4 mostra a alteração que deve ser feita no código da Activity principal, criada na aula anterior, para que possamos iniciar a Activity HelloActivity ao realizarmos o login.

Listagem 4 - Modificando o código da aula anterior para iniciar uma nova Activity.

Agora, ao invés de modificar um ImageView no caso de um login bem sucedido, iniciamos uma nova Activity, que, após algum desenvolvimento, pode ser a tela inicial para aquele usuário que acaba de logar, com as informações que a aplicação se propõe a fornecer. O que é realmente importante nesse exemplo é entender como é simples criar uma nova Activity utilizando um Intent e o comando startActivity(), passando esse Intent.

Agora uma pergunta: o que será que acontece uma vez que apertarmos a tecla voltar do dispositivo, tendo essa Activity nova à frente? Se você tiver executando o exemplo e tiver tido essa curiosidade, verá que a tela se fechou e voltamos a nossa tela de login, do jeito que a havíamos deixado. Esse é um bom momento para falarmos um pouco sobre o Back Stack.

Versão 5.3 - Todos os Direitos reservados