Programação Android: Componentes Essenciais e o Ciclo de Vida das Atividades

Por
6 min. de leitura

Fala aí, Padawan! Se no seu edital cobra desenvolvimento mobile Android, você precisa entender bem como funciona o ecossistema do SO. Neste artigo, vamos destrinchar os principais componentes do Android e o ciclo de vida das Activities. Lembrando que Kotlin é a linguagem oficial recomendada pelo Google para apps Android, mas também podemos programar em JAVA, que foi a linguagem oficial inicialmente.

Introdução

A plataforma Android é uma das mais populares do mundo mobile. Em concursos, é comum caírem questões sobre a arquitetura do Android, seus componentes principais e como o sistema gerencia o ciclo de vida das aplicações. Saber isso é essencial pra garantir pontos preciosos, e claro, também pra desenvolver apps de verdade!

1. Principais Componentes do Android

No universo Android, temos quatro componentes principais:

  • Activity: representa a interface visual do app.
  • Service: executa tarefas em segundo plano (sem interface).
  • Broadcast Receiver: responde a mensagens (intents) enviadas pelo sistema ou outros apps.
  • Content Provider: permite o compartilhamento de dados entre apps.

Esses componentes são gerenciados pelo Android Framework, e cada um tem um ciclo de vida próprio. 

2. O que é uma Activity?

A Activity é um dos componentes mais importantes de um app Android. Ela representa uma tela com interface para o usuário. Cada vez que você abre uma nova tela em um app, por trás dos panos, uma nova Activity pode estar sendo iniciada.

3. Ciclo de Vida de uma Activity

Uma Activity passa por vários estados durante sua existência. O Android fornece métodos que podemos sobrescrever para reagir a cada mudança, são chamadas de métodos de call-back. Olha os principais:

  • onCreate(): chamado quando a Activity é criada.
  • onStart(): quando a Activity se torna visível.
  • onResume(): quando a Activity ganha foco (ativa).
  • onPause(): quando a Activity perde o foco.
  • onStop(): quando não está mais visível.
  • onDestroy(): quando está sendo destruída.
  • onRestart(): chamado quando a Activity é reiniciada após ter sido parada.

4. Service (Serviço)

O Service é um componente Android responsável por executar tarefas em segundo plano, ou seja, que não exigem interação direta com o usuário e que continuam sendo processadas mesmo quando a aplicação não está em primeiro plano. Ele é ideal para operações longas, como tocar música, realizar download/upload de arquivos, sincronizações com servidores ou monitoramento contínuo de dados. Diferente da Activity, o Service não possui interface gráfica. Existem dois tipos principais: Started Service, que é iniciado por outro componente e executa indefinidamente ou até ser interrompido, e o Bound Service, que permite que outros componentes se vinculem a ele para realizar interações diretas. O gerenciamento correto dos serviços é fundamental para economia de bateria e desempenho do sistema, aspectos muito valorizados tanto em desenvolvimento quanto nas questões de concurso.

5. BroadcastReceiver (Receptor de Transmissões)

O BroadcastReceiver é um componente que permite ao app responder a eventos do sistema ou a mensagens (intents) enviadas por outros apps ou pelo próprio Android. Ele atua como um ouvinte (listener) que “acorda” o app temporariamente para reagir a ações como conexão ou desconexão da internet, nível de bateria baixo, início do sistema, mudança de fuso horário, entre outros. Apesar de sua execução ser breve e sem interface, sua correta utilização permite que um app esteja sempre atento ao ambiente do dispositivo, promovendo ações automáticas e reativas. 

6. ContentProvider (Provedor de Conteúdo)

O ContentProvider é um componente que permite compartilhar dados entre diferentes aplicações Android de forma segura e estruturada. Ele age como uma camada de abstração sobre o acesso a dados, seja no banco de dados SQLite, arquivos, ou até dados da internet. Com o ContentProvider, um app pode disponibilizar seus dados para outros apps, respeitando permissões definidas, por meio de URIs (identificadores únicos). Um exemplo clássico é o app de Contatos, que oferece acesso aos seus dados para outros apps através de um ContentProvider. Esse componente é essencial em situações que exigem acesso centralizado, seguro e transacional a dados compartilháveis. 

Conclusão

E aí, Padawan? Viu como o Android tem uma estrutura poderosa, mas fácil de entender quando a gente quebra os conceitos? Entender o ciclo de vida das Activities e os componentes principais do Android não só te ajuda a criar apps melhores, como também te prepara muito bem pra encarar concursos públicos com foco em desenvolvimento mobile.

AHH, não esqueci…vamos praticar!

(2020) INSTITUTO AOCP – 2020 – Prefeitura de Novo Hamburgo – RS – Técnico em Desenvolvimento de Sistemas

Considerando o ambiente de desenvolvimento Android Studio, assinale a alternativa que apresenta apenas linguagens válidas ao adicionar uma nova activity ao projeto.

  • A) Java e Swift.
  • B) C e Java.
  • C) JavaScript e Python.
  • D) C# e PHP.
  • E) Java e Kotlin.

Resposta: E

Embora Kotlin seja a linguagem recomendada pela Google para programar nativamente em ANDROID, ainda podemos usar JAVA para abordagem nativa. 

(2018) INSTITUTO AOCP –  PRODEB – Analista de TIC II – Construção de Software

Android é um sistema operacional (SO) amplamente utilizado em dispositivos móveis como por exemplo smartphones. A programação para este SO utiliza a linguagem Java e permite a criação e a manipulação de vários objetos como as activitys. Levando em consideração este objeto da programação para Android, escolha a alternativa que representa o comando utilizado para a criação de uma activity?

  • A) OnStart
  • B) OnResume
  • C) OnPause
  • D) OnCreate
  • E) OnDestroy

Resposta: D

Alternativa A: Incorreta. onStart() é chamado após o onCreate(), quando a Activity está prestes a se tornar visível para o usuário. Ele não cria a Activity, mas sim prepara ela para aparecer na tela. É parte do ciclo de vida, mas não é responsável pela criação inicial.

Alternativa B: Inorreta. onResume() também vem depois do onStart() e indica que a Activity está pronta para interagir com o usuário (está no topo e em foco). Mas, de novo: ela já foi criada quando esse método é chamado. Ele serve mais pra retomar ou continuar operações.

Alternativa C: Incorreta. onPause() é chamado quando a Activity perde o foco, mas ainda está parcialmente visível. Por exemplo, quando um Dialog aparece ou outra Activity entra em primeiro plano. Ele é usado para pausar ações (como animações, reprodução de vídeo, etc.), não tem relação com a criação da Activity.

Alternativa D: Correta. O método onCreate() é o primeiro método chamado no ciclo de vida de uma Activity. Ele é invocado logo após a criação da Activity, e é onde normalmente fazemos a inicialização da interface de usuário, definimos os layouts, configuramos variáveis, e restauramos estados salvos, se houver. É o verdadeiro ponto de partida de uma Activity.

Alternativa E: Incorreta. onDestroy() é o último método do ciclo de vida de uma Activity, chamado quando ela está sendo finalizada e removida da memória. É ideal para liberar recursos. Ou seja, é o oposto da criação.

(2021) IADES –  CFQ – Analista de Sistemas – Ênfase em sistemas e Processos

A respeito do desenvolvimento de aplicações Android utilizando o Android Studio, assinale a alternativa correta.

  • A) Um ViewGroup pode conter componentes View, mas não outro componente ViewGroup.
  • B) A classe Button não é uma subclasse do View.
  • C) Há quatro tipos de componentes de aplicativo: atividades, serviços, broadcast receivers e provedores de conteúdo.
  • D) A classe LinearLayout não é uma subclasse do View.
  • E) Nem todo projeto precisa de um arquivo AndroidManifest.xml.

Resposta: C 

Alternativa A: Incorreta. Um ViewGroup pode, sim, conter tanto componentes View quanto outros ViewGroups. Isso é essencial para estruturar interfaces complexas. Por exemplo, um LinearLayout (que é um ViewGroup) pode conter outros LinearLayouts ou RelativeLayouts, criando hierarquias de layout.

Alternativa B: Incorreta. A classe Button é sim uma subclasse de View. Na hierarquia do Android, Button herda de TextView, que por sua vez herda de View. Isso significa que um botão é um tipo especializado de View, com funcionalidades interativas.

Alternativa C: correta. Os quatro componentes principais de uma aplicação Android são:

    Activities (Atividades) – Representam telas com interface para o usuário.

    Services (Serviços) – Executam tarefas em segundo plano.

    Broadcast Receivers (Receptores de Transmissão) – Respondem a mensagens e eventos do sistema.

    Content Providers (Provedores de Conteúdo) – Compartilham dados entre diferentes aplicativos.

Esses são os pilares da estrutura de uma aplicação Android e são frequentemente cobrados em concursos.

Alternativa D: Incorreta.

LinearLayout é uma subclasse de ViewGroup, que por sua vez é uma subclasse de View. Logo, indiretamente, LinearLayout é sim uma subclasse de View. Essa cadeia de herança permite que LinearLayout seja usado como um componente visual, que pode conter outros componentes.

Alternativa E: Incorreta. Todo projeto Android precisa do arquivo AndroidManifest.xml. Ele é obrigatório e contém informações fundamentais como:

    Declaração de componentes (Activities, Services, etc.)

    Permissões do app

    Configurações de tema, ícone, entre outros

Sem esse arquivo, o Android Studio nem compila corretamente o projeto.

(2023) CESGRANRIO – Banco do Brasil – Agente de Tecnologia – Microrregião 158 – TI

Um programador recebeu a incumbência de desenvolver uma aplicação móvel segundo a API 30 do Android, correspondente ao Android 11. Seguindo as melhores práticas, cada tela dessa aplicação, incluindo sua funcionalidade, foi construída como um módulo único e autônomo, totalmente independente de outros módulos similares.
Esse módulo único e autônomo é conhecido como

  • A) Activity
  • B) Content Provider
  • C) Fragment
  • D) Intent
  • E) Manifest

Resposta: A

Alternativa A: Correta. No desenvolvimento Android tradicional, especialmente antes das bibliotecas Jetpack, o modelo dominante era o de uma Activity por tela. Cada tela da aplicação era, de fato, implementada como uma Activity separada, contendo sua interface gráfica (UI) e sua lógica de negócio, formando uma unidade independente, navegável e funcional.

Alternativa B: incorreta.  Content Provider-   Não representa interface nem tela.

Alternativa C: incorreta.  Fragment- Fragmentos dependem de uma Activity para existir, e seu uso era opcional ou até evitado por alguns devs, pela complexidade de gerenciamento manual do ciclo de vida.

Alternativa D: incorreta. Intent- Serve para comunicar e iniciar componentes, mas não é um módulo funcional em si.

Alternativa E: incorreta. Manifest- Arquivo de configuração. Define as Activities, mas não é um módulo funcional.


Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil? Clique nos links abaixo:

CONCURSOS 2025

CONCURSOS ABERTOS

QUESTÕES DE CONCURSOS

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos. Clique no link abaixo e inscreva-se:

WHATSAPP

TELEGRAM

Por
6 min. de leitura