🚀 2.6 Ciclo de Vida da Activity

A Activity é um componente de aplicação com um ciclo de vida rigoroso. Quando o usuário navega, sai ou retorna para a aplicação, a atividade transita por diferentes estados. Compreender esse fluxo é vital para gerenciar recursos (como conexões de rede e banco de dados) e garantir uma experiência de usuário Premium, sem travamentos ou perda de dados.

O Fluxo de Estados

Abaixo, o diagrama oficial simplificado utilizando a padronização Quartz:

graph TD
    subgraph SG1 ["Ciclo de Vida da Activity"]
    A([Início]) --> B[onCreate]
    B --> C[onStart]
    C --> D[onResume]
    D -- "App em Execução" --> E{Usuário sai?}
    E -- "Parcialmente visível" --> F[onPause]
    E -- "Totalmente oculto" --> G[onStop]
    F --> D
    G --> C
    G --> H[onDestroy]
    H --> I([Fim])
    end

    style B fill:#e3f2fd,stroke:#1e88e5
    style D fill:#f1f8e9,stroke:#558b2f
    style H fill:#fdf2f2,stroke:#c0392b

Principais Callbacks (Java 17)

Sempre que a Activity muda de estado, o Android aciona um método correspondente. No Android Studio 2023.1, herdamos de AppCompatActivity:

public class MinhaActivity extends AppCompatActivity {

    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Inicialização de UI, ViewBinding e variáveis essenciais.
    }

    @Override
protected void onStart() {
        super.onStart();
        // A activity está quase visível.
    }

    @Override
protected void onResume() {
        super.onResume();
        // A atividade ganha o foco e está pronta para interação (Foreground).
    }

    @Override
protected void onPause() {
        super.onPause();
    // Outra atividade está recebendo o foco. Salve dados persistentes aqui.
}
    @Override
protected void onStop() {
        super.onStop();
    // A atividade não está mais visível. Libere recursos pesados.
}
    @Override
protected void onDestroy() {
        super.onDestroy();
    // Limpeza final antes do componente ser removido da memória.
}

}

> [!IMPORTANT]
> 
> Lembre-se sempre de invocar a implementação padrão `super.metodo()` ao sobrescrever os callbacks do ciclo de vida. Isso garante que o framework do Android execute as tarefas internas necessárias para a estabilidade do sistema.

---
[[Informática para Internet/Desenvolvimento para Dispositivos Móveis II/capitulo_019|⬅️ Capítulo Anterior]] | [[Informática para Internet/Desenvolvimento para Dispositivos Móveis II/capitulo_021|Próximo Capítulo ➡️]]