¿Cómo puedo saber que OnResume viene después de onCreate?

Tengo pocas actividades y de una actividad abro otra y que vuelve a la primera …

El punto es onCreate se llama ones, y onResume cada vez que se muestra la actividad. Por ejemplo, cuando cierro B que se inició anteriormente desde A, onResume se llama, pero no onCreate ….

Mi problema es que no quiero ejecutar el onResume si se trata después onCreate, quiero ejecutar el código sólo si onCreate no se llamó

¿Es esto posible hacer SIN bandera estática?

¿Hay algún método o bandera de android como comesAfterOnCreate?

@Override protected void onResume() { if(comesAfterOnCreate){ //DO not run this code }else{ //run the long task } 

Muestro muchas respuestas con la solución usando la bandera estática, gracias a todos por el esfuerzo y ofreciendo la ayuda, pero me interesó hay algún método o algo así …

6 Solutions collect form web for “¿Cómo puedo saber que OnResume viene después de onCreate?”

No es un trabajo difícil, puede utilizar boolean o ver aquí ¿Es posible comprobar fue onCreate llamado debido al cambio de orientación?

Prueba esto,

 boolean flag = false; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); flag = true; .... } @Override protected void onResume() { super.onResume(); if(flag == true){ ..... // it has came from onCreate() } else{ .....// it has directly came to onResume() } } 

Ahora, cuando el Acitivity termine el valor de flag será false de nuevo y onResume() será llamado con el valor false.

Espero que esto funcione para usted.

Así como en mi comentario:

 private boolean onCreateRunned = false; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); onCreateRunned = true; //More code } @Override public void onResume(){ super.onResume(); if(onCreateRunned){ onCreateRunned = false; //important, or it will run only once. // Do your code } } 

Como se muestra en la Actividad – Documentación de Android .

Una actividad tiene esencialmente cuatro estados:

1. Si una actividad en el primer plano de la pantalla (en la parte superior de la pila), está activa o en ejecución.

2. Si una actividad ha perdido el foco pero sigue siendo visible (es decir, una nueva actividad no de tamaño completo o transparente se ha centrado en la parte superior de su actividad), se detiene. Una actividad en pausa está completamente viva (mantiene toda la información de estado y miembro y permanece conectada al administrador de ventanas), pero puede ser eliminada por el sistema en situaciones de memoria de muy baja intensidad.

3. Si una actividad es completamente oscurecida por otra actividad, se detiene. Todavía conserva toda la información de estado y de miembro, sin embargo, ya no es visible para el usuario por lo que su ventana está oculta y que a menudo será asesinado por el sistema cuando la memoria se necesita en otro lugar.

4. Si una actividad se detiene o se detiene, el sistema puede dejar caer la actividad de la memoria ya sea pidiéndole que finalice o simplemente mate su proceso. Cuando se vuelve a mostrar al usuario, debe reiniciarse completamente y volver a su estado anterior.

Aquí está el ciclo de vida de una actividad, como se muestra en la documentación de Android:

Introduzca aquí la descripción de la imagen

Hay tres bucles claves que puede estar interesado en monitorear dentro de su actividad:

1. Toda la vida útil de una actividad ocurre entre la primera llamada a onCreate (Bundle) hasta una única llamada final a onDestroy (). Una actividad realizará toda la configuración del estado "global" en onCreate () y liberará todos los recursos restantes en onDestroy (). Por ejemplo, si tiene un subproceso que se ejecuta en segundo plano para descargar datos de la red, puede crear ese subproceso en onCreate () y, a continuación, detener el subproceso en onDestroy ().

2. La vida visible de una actividad ocurre entre una llamada a onStart () hasta una llamada correspondiente a onStop (). Durante este tiempo, el usuario puede ver la actividad en pantalla, aunque puede que no esté en primer plano e interactúe con el usuario. Entre estos dos métodos puede mantener los recursos necesarios para mostrar la actividad al usuario. Por ejemplo, puede registrar un BroadcastReceiver en onStart () para supervisar los cambios que afectan a su interfaz de usuario y anular su registro en onStop () cuando el usuario ya no vea lo que está mostrando. Los métodos onStart () y onStop () se pueden llamar varias veces, ya que la actividad se vuelve visible y oculta al usuario.

3. La vida de primer plano de una actividad sucede entre una llamada a onResume () hasta una llamada correspondiente a onPause (). Durante este tiempo la actividad se encuentra frente a todas las demás actividades e interactuando con el usuario. Una actividad puede ir frecuentemente entre los estados reanudados y pausados, por ejemplo cuando el dispositivo se duerme, cuando se entrega un resultado de actividad, cuando se entrega una nueva intención, por lo que el código en estos métodos debe ser bastante ligero.

Conclusión: No se puede cambiar el orden de ejecución del ciclo de vida.

Trate de incluir tostadas en OnCreate y OnResume y compruebe si la tostada "onResume" aparece cuando ejecuta la aplicación antes de la tostada OnCreate. O imprimir un mensaje de registro de los respectivos métodos

Creo que @suri tiene razón. Pero si quieres ser más claro con onCreate() y onResume()

Luego pon

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); System.out.println(">>>>>> This is oncreate method"); .... } @Override protected void onResume() { super.onResume(); System.out.println("This is onResume method <<<<<<<<<"); } 

Esto es más sencillo para comprobar su pregunta.

  • Cualquier manera de forzar la aplicación de memoria en el emulador de Android?
  • Fragmento onStop () se llama directamente después onStart () - ¿POR QUÉ?
  • Android: aplicación global onPause () y onResume ()?
  • Ciclo de vida de la actividad de Android en Jelly Bean
  • Fiabilidad del ciclo de vida de la actividad (onPause to onDestory)
  • Cómo reiniciar la aplicación de Android desde la aplicación
  • OnNewIntent () y los oyentes registrados
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.