Uma activity (atividade) é um dos componentes fundamentais de uma app Android e representa normalmente um único ecrã com uma interface de utilizador, como um ecrã de início de sessão, uma lista de mensagens ou uma página de definições. Cada atividade é uma classe que herda de Activity ou, na maioria dos casos, de AppCompatActivity ou ComponentActivity, e tem de ser registada no AndroidManifest.xml da app. Quando o utilizador abre a app a partir do ecrã principal, o sistema inicia a atividade especificada como ponto de entrada da app e, a partir daí, a app pode abrir outras atividades através de intents.
Uma atividade tem um ciclo de vida controlado pelo sistema Android. Através de métodos como onCreate(), onStart(), onResume(), onPause(), onStop() e onDestroy(), a app é notificada quando o ecrã é criado, fica visível, perde o foco ou é fechado, para que os recursos possam ser libertados e os dados guardados no momento certo. Muitas apps modernas utilizam apenas uma ou poucas atividades e constroem os ecrãs individuais com fragments ou com Jetpack Compose, mas a atividade continua a ser o elemento que liga a interface de utilizador da app ao sistema.
Uma activity, no desenvolvimento de apps, refere-se a um único ecrã de uma aplicação Android que funciona como uma janela interativa para o utilizador. Cada atividade é responsável por tratar as interações do utilizador e apresentar dados, o que permite aos programadores criar experiências de utilizador dinâmicas e cativantes. As atividades podem trabalhar em conjunto, passando dados umas às outras, o que garante uma navegação e um funcionamento sem descontinuidades na app.
Mais sobre Activity
Uma activity é um componente central do desenvolvimento de aplicações Android que representa um único ecrã com uma interface de utilizador. Cada atividade é uma unidade autónoma que trata as interações do utilizador e apresenta dados, o que permite aos programadores criar experiências de utilizador dinâmicas e cativantes. As atividades são blocos de construção fundamentais das apps Android e funcionam como pontos de entrada através dos quais os utilizadores interagem com as funções da app.
Tecnicamente, uma atividade é uma subclasse da classe Activity do Android SDK e funciona tratando métodos de ciclo de vida que controlam a forma como a atividade é criada, iniciada, parada e destruída. Quando uma atividade é iniciada, passa por uma série de fases do ciclo de vida que permitem aos programadores gerir os recursos de forma eficiente e reagir às interações do utilizador. Estas incluem métodos como onCreate(), onStart(), onResume(), onPause(), onStop() e onDestroy(), cada um dos quais desempenha um papel na garantia de uma experiência de utilizador fluida e responsiva.
As atividades podem ser apresentadas de diferentes formas, cada uma adequada a diferentes tipos de interação:
Ecrã inteiro: Aqui, a atividade funciona como um ecrã autónomo que trata as interações do utilizador e apresenta dados. Esta é a forma mais comum, em que o utilizador navega entre diferentes ecrãs de uma app.
Como caixa de diálogo: Com um tema de diálogo, a atividade é apresentada como uma caixa de diálogo que flutua sobre o ecrã atual. Isto é por vezes utilizado para mostrar mensagens importantes ou pedir dados ao utilizador sem sair do contexto atual, embora as caixas de diálogo sejam mais frequentemente implementadas com dialog fragments ou com Compose.
Modo imersivo: A atividade assume o controlo total do ecrã e oculta as barras do sistema, como a barra de estado e a barra de navegação, para proporcionar uma experiência imersiva. Isto é ideal para jogos ou reprodução de multimédia, onde o foco no conteúdo é crucial.
Um dos maiores pontos fortes das atividades é a sua capacidade de tratar interações do utilizador e padrões de navegação complexos. O modelo de atividades do Android suporta vários padrões de navegação, como a back stack, que permite aos utilizadores voltar a ecrãs anteriores, criando uma experiência de utilizador intuitiva e previsível. Além disso, as atividades podem partilhar dados e comunicar umas com as outras através de intents, o que permite uma integração sem descontinuidades entre diferentes partes de uma app.
As atividades foram também concebidas para serem eficientes em termos de recursos. Os métodos de ciclo de vida do Android permitem aos programadores otimizar o consumo de recursos, libertando os recursos desnecessários quando uma atividade não está visível e voltando a carregá-los quando regressa ao primeiro plano. Isto ajuda a garantir que as apps se mantêm responsivas e eficientes, mesmo em dispositivos com recursos limitados.
Na prática, as atividades moldaram a forma como as apps Android são concebidas e desenvolvidas. Proporcionam uma abordagem estruturada para tratar as interações do utilizador e os padrões de navegação, o que permite aos programadores criar experiências de utilizador ricas e cativantes. As atividades estão no centro de muitas apps populares, onde são utilizadas para organizar conteúdos, tratar a entrada do utilizador e navegar entre diferentes funções.
Em resumo, as atividades são uma parte essencial do desenvolvimento Android que combina flexibilidade, eficiência e facilidade de utilização numa solução que permite aos programadores criar apps poderosas e intuitivas. A sua capacidade de tratar ciclos de vida e padrões de navegação complexos faz delas uma ferramenta central no desenvolvimento moderno de apps, onde a experiência de utilizador e uma gestão eficiente dos recursos são cruciais.
Perguntas frequentes sobre Activity
O que é uma activity no Android?
Uma activity é um dos blocos de construção fundamentais de uma app Android. Representa normalmente um único ecrã com uma interface de utilizador, como um ecrã de início de sessão, uma lista de mensagens ou uma página de definições. O utilizador interage com a app através das suas atividades.
Cada atividade é uma classe que herda de Activity ou, mais frequentemente, de AppCompatActivity ou ComponentActivity, e tem de ser declarada no ficheiro AndroidManifest.xml. Uma atividade é marcada como ponto de entrada, para que o sistema saiba o que abrir quando o utilizador toca no ícone da app. As apps modernas têm muitas vezes poucas atividades e utilizam fragments ou Jetpack Compose para mostrar diferentes ecrãs.
Como funciona o ciclo de vida de uma activity?
Uma atividade passa por uma série de estados desde o momento em que é criada até ser fechada. O Android chama métodos específicos quando o estado muda. onCreate é chamado quando a atividade é criada, e é aqui que a interface de utilizador é configurada. onStart e onResume são chamados quando fica visível e pronta a utilizar.
Quando o utilizador muda para outra app ou outro ecrã, são chamados onPause e onStop e, quando a atividade é completamente fechada, é chamado onDestroy. Ao colocar o código nos métodos certos, a app pode, por exemplo, parar um vídeo quando não está visível e guardar dados antes de ser fechada. Um tratamento incorreto pode causar erros e desperdiçar recursos.
Como muda uma app de uma activity para outra?
Uma app muda de uma atividade para outra através de um intent. Um intent descreve que atividade deve ser aberta e pode conter dados, como o ID de um produto que o novo ecrã deve mostrar. O intent é enviado com o método startActivity.
A nova atividade é colocada no topo de uma pilha conhecida como back stack. Quando o utilizador prime retroceder, a atividade do topo é fechada e a anterior volta a ser mostrada. Se o novo ecrã precisar de devolver um resultado, como uma imagem selecionada, utiliza-se a Activity Result API. Muitas apps modernas, no entanto, utilizam uma única atividade e o componente Navigation para mudar de ecrã dentro dela.
O que acontece a uma activity quando o ecrã é rodado?
Quando o utilizador roda o telemóvel, a configuração muda e, por predefinição, o Android destrói a atividade atual e cria-a novamente. Isto permite carregar um layout diferente adequado à nova orientação, mas também significa que os dados guardados apenas na atividade podem perder-se.
Para evitar isto, utiliza-se normalmente um ViewModel, que sobrevive às alterações de configuração e mantém dados como listas já carregadas. Pequenas quantidades de estado, como o texto num campo ou uma posição de deslocamento, podem ser guardadas com onSaveInstanceState ou com rememberSaveable em Jetpack Compose. O mesmo se aplica quando o idioma, o tema ou o tamanho do ecrã mudam.
Qual é a diferença entre uma activity e um fragment?
Uma atividade é um componente autónomo conhecido pelo sistema e declarado no AndroidManifest.xml. Funciona como um contentor para a interface de utilizador da app e pode ser iniciada diretamente, por exemplo a partir de uma notificação ou de outra app.
Um fragment é uma parte mais pequena e reutilizável da interface de utilizador que vive sempre dentro de uma atividade. Podem ser mostrados vários fragments na mesma atividade, como uma lista e uma vista de detalhe lado a lado num tablet. Os fragments têm o seu próprio ciclo de vida, que está ligado à atividade que os aloja. Muitas apps utilizam poucas atividades e muitos fragments ou ecrãs Compose.
O que são os launch modes de uma activity?
Os launch modes (modos de iniciação) determinam como uma nova atividade é colocada em relação às existentes quando é iniciada. Por predefinição, é criada uma nova instância de cada vez, mesmo que a mesma atividade já esteja aberta.
Com singleTop, a atividade é reutilizada se já estiver no topo da pilha, em vez de ser criada uma nova. Com singleTask, existe apenas uma instância, e as atividades acima dela são removidas quando é novamente aberta. singleInstance coloca a atividade na sua própria tarefa e, desde o Android 12, singleInstancePerTask permite uma instância por tarefa. Os launch modes são especificados no AndroidManifest.xml ou com flags num intent e são utilizados, por exemplo, para evitar duplicados quando a app é aberta a partir de uma notificação.
Activity para manequins
Uma activity numa app é como um único ecrã num telemóvel. Pensa nela como uma página de um livro. Quando abres uma app, aparece um ecrã onde podes fazer algo específico, como ler notícias, enviar uma mensagem ou ver fotografias. Cada um destes ecrãs é uma «activity». Passar de ler notícias para enviar uma mensagem significa mudar de uma activity para outra. É a forma de as apps organizarem diferentes funções e informações, para que sejam fáceis de percorrer e de usar.