OnActivityCreated siempre se llama?

Al mirar el diagrama excelente en https://github.com/xxv/android-lifecycle dice que onActivityCreated () no se llama al reinicio de fragmento.

Tengo dudas sobre eso:

  • ¿Es eso cierto? Alguien puede proporcionar algún enlace para hacer la documentación donde se explica que el comportamiento del ciclo de vida?
  • Exactamente lo que es Fragment restart ()?
  • ¿Puede Android decidir eliminar fragmentos no visibles pero mantener la actividad que los contiene?

Nota 1 : He probado que onActivityCreated se llama cuando se agrega Fragmento debido a la recreación de la actividad y también cuando el fragmento se agrega manualmente después de que la actividad esté completamente iniciada y activa.

Nota 2 : Estoy probando con la versión de soporte 23.3.0. ¿Es posible que algún comportamiento haya cambiado de versiones anteriores?

La mayoría de los métodos de la actividad del host se reflejan en Fragmentos.

OnRestart () llamó cuando su actividad en una pila trasera y pulsar el botón de nuevo, por lo que no hay necesidad de volver a crear (sólo vuelve a empezar).

Algunos métodos no existen en Fragment (como onRestart (), onRestoreInstanceState (), no sé por qué). Así que reiniciar sucede en el host y se desencadena OnStart de Fragment (), onResume (), sólo creo que se reinicia con la actividad.

Otra historia con apego y desapego. En algunos callback que desea trabajar con seguridad con árbol de vista y onActivityCreated () es un buen candidato, por lo que no es reiniciar.

Supongo que Fragment no tiene onRestart () porque es hasta el desarrollador para administrar la pila trasera y puede haber retenido Fragmentos (que no debe poner en la pila trasera).

La mejor prueba es el código. Trate de jugar con el registro. Hace algún tiempo lo hice yo mismo , porque el proyecto de Steve prueba sólo un Fragmento.

Pushed un poco de modo (iniciar ActivityWithDynamicFragments, a continuación, pulse el botón de volver) y aquí es un registro:

176448881: DynamicFragment.<init> / ctor 176448881: DynamicFragment.onAttach / in base with context 176448881: DynamicFragment.onAttach / in base with activity 176448881: DynamicFragment.onAttach / out base with activity 176448881: DynamicFragment.onAttach / out base with context 176448881: DynamicFragment.onCreate / in base 176448881: DynamicFragment.onCreate / out base 176448881: DynamicFragment.onCreateView / in brand new 176448881: DynamicFragment.onCreateView / out 176448881: DynamicFragment.onViewCreated / in base 176448881: DynamicFragment.onViewCreated / out base 176448881: DynamicFragment.onActivityCreated / in base 176448881: DynamicFragment.onActivityCreated / out base 176448881: DynamicFragment.onViewStateRestored / in base 176448881: DynamicFragment.onViewStateRestored / out base 176448881: DynamicFragment.onStart / in base 176448881: DynamicFragment.onStart / out base 176448881: DynamicFragment.onResume / in base 176448881: DynamicFragment.onResume / out base 176448881: DynamicFragment.onPause / in base 176448881: DynamicFragment.onPause / out base 227303269: ActivityWithDynamicFragments.onCreate / in brand new 227303269: ActivityWithDynamicFragments.onCreate / in base 227303269: ActivityWithDynamicFragments.onCreate / out base 227303269: ActivityWithDynamicFragments.onCreate / after super 227303269: ActivityWithDynamicFragments.onContentChanged / in base 227303269: ActivityWithDynamicFragments.onContentChanged / out base 227303269: ActivityWithDynamicFragments.onStart / in base 227303269: ActivityWithDynamicFragments.onStart / out base 227303269: ActivityWithDynamicFragments.onResume / in base 227303269: ActivityWithDynamicFragments.onResume / out base 227303269: ActivityWithDynamicFragments.onPostResume / in base 227303269: ActivityWithDynamicFragments.onResumeFragments / in base 227303269: ActivityWithDynamicFragments.onResumeFragments / out base 227303269: ActivityWithDynamicFragments.onPostResume / out base 227303269: ActivityWithDynamicFragments.onAttachedToWindow / in base 227303269: ActivityWithDynamicFragments.onAttachedToWindow / out base 176448881: DynamicFragment.onSaveInstanceState / in base 176448881: DynamicFragment.onSaveInstanceState / out base 176448881: DynamicFragment.onStop / in base 176448881: DynamicFragment.onStop / out base 227303269: ActivityWithDynamicFragments.onPause / in base 227303269: ActivityWithDynamicFragments.onPause / out base D/NSA: onRestart 176448881: DynamicFragment.onStart / in base 176448881: DynamicFragment.onStart / out base 176448881: DynamicFragment.onResume / in base 176448881: DynamicFragment.onResume / out base 227303269: ActivityWithDynamicFragments.onStop / in base 227303269: ActivityWithDynamicFragments.onStop / out base 227303269: ActivityWithDynamicFragments.onDestroy / in base 227303269: ActivityWithDynamicFragments.onDestroy / out base 

Tenemos dos términos de recreación y reinicio.

Recreación ocurre sólo con la modificación (incluso potencial, cuando Fragmento sin UI) del árbol de vista.

El reinicio ocurre cuando el árbol de vistas es estable (por ejemplo, su actividad con fragmento en la pila trasera y desea recuperarla).

¿Puede Android decidir eliminar fragmentos no visibles pero mantener la actividad que los contiene?

Creo que el único quanta manejable para matar por Android OS es un proceso (pero es discutible ).

En cuanto a Fragmento puede comprobar el código fuente de FragmentActivity y FragmentManager (no veo tal flujo).

  • Reiniciar una actividad ya en ejecución
  • Una Actividad y todos los otros Fragmentos
  • Establecer un oyente personalizado para escuchar en toda la aplicación
  • LocalBroadcastManager y el ciclo de vida de la actividad
  • OnCreate () vs OnStart ()
  • Algunos fragmentos se pierden en rotación
  • Cuando se llama onRestoreInstanceState?
  • No se pudo resolver: android.arch.lifecycle: extensions: 1.0.0-alpha1 android studio 3.0
  • ¿Por qué se llama onStop justo después de que se inicie mi actividad?
  • Diferencia principal entre el Manifiesto y el Registro Programático de BroadcastReceiver
  • Cómo "destruir" varias actividades de Android al mismo tiempo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.