GetIntent () cuando cambia la orientación – cómo manejar esto?

Esto se siente como una pregunta noob, pero en Android, cuando la orientación cambia la actividad se destruye y se recrea, y onCreate () se llama de nuevo. El estado interno se puede guardar mediante un paquete savedInstanceState. Hasta aquí todo bien.

Pero en mi aplicación tengo una actividad que normalmente se invoca desde otra actividad a través de startActivityForResult () , que pasa en un montón de parámetros. En onCreate () la actividad de destino hace getIntent () para recuperar los datos pasados. El problema es que cuando esa actividad está en la pantalla y vuelco la orientación se bloquea. Se está estrellando en el código onCreate () , donde llama getIntent () . Supongo que se está estrellando porque no hay nada que "conseguir" ya que en ese caso se está invocando desde el sistema en lugar de desde la otra actividad.

¿Cuál es la manera correcta de manejar esto? ¿Cómo puedo saber cuando mi onCreate () se llama debido a un cambio de orientación, así que no intento llamar a getIntent () ? ¿O simplemente estoy pensando en esto mal? Gracias de antemano.

Puede guardar los detalles que obtiene mediante el método getIntent() en savedInstanceState. Esto significa que en su onSaveInstanceState(Bundle) almacena la información que utiliza en el onCreate() utilizando getIntent() . Cuando su activity se crea recientemente, en el onCreate(Bundle savedInstanceState) , el paquete savedInstanceState es nulo. Así que puedes hacer una condición de chequeo en tu onCreate(Bundle savedInstanceState) , si el paquete savedInstanceState es nulo, significa que necesitas obtener los datos usando getIntent() si no es nulo, significa que hubo algún cambio de oritentation y necesitas obtener Los datos que utilizan el conjunto savedInstanceState .

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.