Sobes.tech
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 de onCreate(), onde ocorre a ligação com a Activity (obtenção do contexto da Activity), e onCreateView(), onde a hierarquia de Views do fragmento é criada.
  • onDestroy(): O fragmento possui um método adicional onDestroyView() antes de onDestroy(), onde ocorre a limpeza da hierarquia de Views, e onDetach() após onDestroy(), 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.