Junior
Qual é a diferença entre o ciclo de vida de um fragmento e o ciclo de vida de uma Activity?
sobes.tech IA
Resposta da IA
O ciclo de vida de um fragmento está estreitamente ligado ao ciclo de vida da Activity pai. Um fragmento não pode existir sem uma Activity.
Principais diferenças:
- onCreate(): O fragmento possui um método adicional
onAttach()antes deonCreate(), onde ocorre a ligação com a Activity (obtenção do contexto da Activity), eonCreateView(), onde a hierarquia de Views do fragmento é criada. - onDestroy(): O fragmento possui um método adicional
onDestroyView()antes deonDestroy(), onde ocorre a limpeza da hierarquia de Views, eonDetach()apósonDestroy(), onde ocorre a desconexão da Activity. - Estado: O fragmento pode ser adicionado ao backstack da Activity, permitindo restaurar seu estado ao retornar. A Activity é completamente destruída ao final.
- Aninhamento: As Activities operam ao nível da tela, enquanto os fragmentos podem ser aninhados entre si e em uma Activity.
Tabela comparativa dos principais métodos do ciclo de vida:
| Método da Activity | Método(s) do Fragmento | Descrição |
|---|---|---|
onCreate() |
onAttach(), onCreate(), onCreateView() |
Criação da instância, ligação, criação da View |
onStart() |
onStart() |
Torna-se visível |
onResume() |
onResume() |
Começa a interagir com o usuário |
onPause() |
onPause() |
Vai para o plano de fundo ou fica parcialmente oculto |
onStop() |
onStop() |
Torna-se invisível |
onDestroy() |
onDestroyView(), onDestroy(), onDetach() |
Destruição da View, da instância, desconexão |
O ciclo de vida do fragmento é mais granular, permitindo gerenciar de forma mais flexível o estado e o comportamento dos componentes UI dentro de uma mesma Activity. Por exemplo, onCreateView() é chamado toda vez que a View do fragmento é criada, mesmo que o próprio fragmento já tenha sido criado (por exemplo, ao alterar a configuração). onCreate() é chamado apenas uma vez durante o ciclo de vida da instância do fragmento.