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:
- DatePickerDialog onDateSet llamado cuando se gira
- Android: Cuando se cancela un servicio, ¿cómo podemos persistir el estado del servicio para una restauración posterior?
- "Hilo ya iniciado" al reanudar la actividad
- Actividad Ciclo de vida X Botón de encendido X Pantalla de bloqueo
- ¿Por qué utilizar Fragment # setRetainInstance (boolean)?
- ¿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?
- Variables estáticas públicas y gestión del ciclo de vida de la actividad de Android
- Fragmento de Android superpuesto por otro fragmento todavía se muestra y no onPause
- Escenario de Android donde ondestroy () se llama sin onpause () o onstop ()
- Una vez más en el ciclo de vida de la actividad: onStart se llama cuando no debe ser
- Evitar que la actividad sea destruida tanto como sea posible
- ¿Puede Android Service superar el objeto de aplicación?
- ¿Cuál es el fragmento equivalente de Activity.isFinishing ()?
- Mal comportamiento de Backstack de la actividad cuando la actividad destruida
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).
- Custom inputType / clave establecida para el teclado suave de Android
- Inyección de genéricos en Dagger