¿Puedo llamar a startActivity () desde dentro onResume ()?

Tengo una actividad de androide que necesita llamar otra actividad (para conseguir una contraseña del usuario) antes de que su propia pantalla se traiga para arriba. Mi código lo hace actualmente llamando startActivity () desde onResume (); Que tipo de obras, pero he estado recibiendo un comportamiento inconsistente. ¿Puede alguien decirme si este enfoque es legal o no (y si no, cómo debería hacerlo)?

Gracias, Richard.

Llamar startActivity() en onResume() está absolutamente bien. Tengo muchas actividades que hacen esto, a menudo en la reacción a los acontecimientos que han sucedido mientras que la actividad fue parada.

All startActivity() es decirle a Android que inicie la nueva actividad y la agregue a la parte superior de la pila trasera cuando el hilo principal esté disponible, lo que en este caso será después de que Android haya terminado de llamar a todas las devoluciones de llamada de ciclo de vida necesarias en la actividad actual .

Si experimenta un comportamiento extraño, dudo que esté relacionado con esto.

No suena como una buena idea.

Algunas alternativas:

  • Para pedir la contraseña, puede utilizar un cuadro de diálogo en lugar de una actividad.

  • Por qué no ir siempre a través de esta actividad intermedia. En caso de que no haya necesidad de pedir una contraseña, podría mostrar algo más, como una animación mientras se conecta al servicio (suponiendo que la contraseña es una cosa de red)

Puede llamar a startActivity () de onResume () pero es una llamada asíncrona. Así que onResume () (y los otros métodos de la actividad actual) seguirán funcionando hasta que el sistema operativo Android pase a su llamada asíncrona startActivity () y comience la nueva actividad.

El comportamiento incoherente que está experimentando probablemente esté relacionado con su actividad que continúa por un período indefinido de tiempo hasta que el sistema operativo cargue la nueva actividad.

De hecho, es legal, pero dependiendo de lo que usted quiere hacer exactamente podría ser poco práctico. Una manera común es comenzar con su "segunda" actividad como se definiría en el manifiesto y luego pasar a la primera actividad. Otra forma sería iniciar una actividad para el resultado en, por ejemplo, onCreate() , que puede hacerse incluso antes de llamar a cualquier setContentView() . Hay muchas maneras de hacer esto, así que supongo que necesitamos un poco más de información para ser capaz de proporcionar una respuesta más precisa.

  • ¿Es onResume () llamado antes onActivityResult ()?
  • Obtener la altura del teclado de software de Android sin ajustar "adjustResize"
  • ¿Qué método se llama el momento en que la actividad está completamente establecida y lista para la interacción del usuario?
  • Cómo cambiar el título de actividad en Android?
  • Todos los iconos de ActionMode Bar no se muestran en Android?
  • Ejecutar código en el estado onPause () o onStop () de la actividad
  • ¿Cuál es la diferencia entre esto y Actividad?
  • ¿Cómo cambiar el indicador de tablayout de arriba a abajo?
  • ¿Cuál es la forma correcta de crear una pantalla de inicio de sesión / actividad en Android?
  • ¿Qué significa "se ejecuta en el hilo de interfaz de usuario" para onPostExecute () realmente significa?
  • Cómo agregar un texto largo con muchos párrafos en string.xml en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.