Ciclo de vida de fragmentos de Android

El ciclo de vida del fragmento es similar a la actividad

Fragment debe depender de Activity para ejecutarse, por lo que las llamadas del ciclo de vida de Activity tienen prioridad sobre Fragment, y Fragment es mucho más ligero que Activity.

  1. onAttach: Llamado cuando el Fragmento está asociado con la Actividad para obtener el valor pasado por la Actividad
  2. onCreate: Llamado antes de que se cree la vista
  3. onCreateView: se llama al crear una vista de fragmentos
  4. onActivityCreated: se llama después de crear la vista
  5. onStart: se llama cuando se muestra la vista de la interfaz
  6. onResume: se llama cuando la vista de la interfaz tiene el foco
  7. onDestroyView: se llama cuando se elimina la vista Fragment
  8. onDestroy: se llama cuando se destruye
  9. onDetach: se llama cuando el Fragmento ya no está adjunto a la Actividad

Proceso de inicio de fragmentos

Llamado cuando se crea el Fragmento:
onAttach—>onCreate—>onCreateView—>onActivityCreated—>onStart—>onResume

Llamado cuando Fragment es invisible:
onPause --> onStop

Llamado cuando se destruye el Fragmento:
onPause—>onStop—>onDestroyView—>onDestory—>onDetach

diagrama de flujo

inserte la descripción de la imagen aquí

Durante el proceso de desarrollo, debe prestar atención a los métodos que se pueden usar comúnmente

setUserVisibleHint() Este método se llama antes de onCreateView, por lo que este método no puede operar la vista. De lo contrario, devuelve un error de puntero nulo

Escenario de uso : cuando se usa con ViewPager, hay un mecanismo interno de caché previa (de forma predeterminada, una página se almacena en caché por adelantado) , y la carga diferida se puede realizar a través de este método. Debido al mecanismo de ViewPager, los fragmentos delantero y trasero se cargan durante el proceso de inicialización. Antes de que el usuario active manualmente la segunda página, este último fragmento se carga y se realiza la solicitud de red para procesar datos, lo que viola por completo el mecanismo de carga diferida. . Por lo tanto, es necesario utilizar este método.Cuando el Fragmento está visible, se realiza la solicitud de red y se implementa la interfaz de actualización de representación de datos.

Nota : cuando no se usa ViewPager, pero se agrega el Fragmento ocultar mostrar a través de FragmentTransaction, no se llama al método setUserVisibleHint(). La razón es que Fragment no pasa por ningún ciclo de vida cuando se llama a los métodos hide() y show() .

   @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
    
    
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) {
    
    
            //界面可见
        } else {
    
    
            //界面不可见
        }
    }

Cuando onHiddenChanged() usa FragmentTransaction para controlar la ocultación y visualización del fragmento, se llamará a este método. Siempre que use ocultar o mostrar en un Fragmento, el Fragmento llamará automáticamente a este método.
(Situación de uso: tú mismo administras Fragment, no cuando lo administras con viewpager)

Supongo que te gusta

Origin blog.csdn.net/u013290250/article/details/103991926
Recomendado
Clasificación