¿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.
- Actividad de fragmento catch onKeyDown y uso en fragmento
- ¿Cómo comprobar si una actividad es la última en la pila de actividades de una aplicación?
- ¿Cómo inicio una actividad dentro de un Fragmento?
- Actualizar actividad en Android
- GetActivity (). FindViewById devuelve null, llamado desde el fragmento onActivityCreated
- Cómo guardar el estado de actividad en android?
- Cómo navegar desde una pantalla a otra pantalla
- ¿Qué hace el atributo android: configChanges = "screenSize"?
- Android: Restaurar la actividad activa mientras se reanuda la aplicación
- ¿Cómo hago anuncios de banners (admob) comunes para todas mis actividades
- ¿Cómo puede saber cuándo se termina de cargar una actividad de Android?
- Actividades de cierre se apilan después de un clic de botón
- Actividad inicial de Android-Library-Project
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.
- Usando flash con vista web de android
- PercentFrameLayout: Debe proporcionar un atributo layout_width