studio programacion herramientas fundamentos con avanzado aplicaciones android android-activity orientation onresume

programacion - manual de android en pdf



¿Qué método de actividad se llama cuando ocurren cambios de orientación? (2)

¿Qué método del ciclo de vida se llama cuando ocurren los cambios de orientación? Mi aplicación ejecuta el método onResume() o tal vez vuelve a cargar toda la actividad porque he establecido un valor booleano para verificar si se ejecuta por primera vez o no. He leído onConfigurationChanged() cuando se produce el cambio de orientación, ¿es cierto? ¿Cómo manejar esto?


Interesante ...

La actividad se inicia onResume() es lo que declaras en tu XML de forma predeterminada.

Y como he encontrado en la respuesta a la pregunta sobre el desbordamiento de la pila es:

Cambio de Orientación

  • onSaveInstanceState
  • OnPause
  • OnStop
  • onCreate
  • onStart
  • onRestoreInstanceState
  • En resumen

Cambiar a la Actividad 2

  • onSaveInstanceState
  • OnPause

Cambio de orientación MIENTRAS QUE EN LA Actividad 2

  • OnStop
  • onCreate
  • onStart

Switchback ATRÁS DESDE Activity2

  • En resumen

Supongo que debido a que la Actividad 1 está oculta en el momento de la rotación, onRestoreInstanceState no se llama porque no hay ''vista'' (es decir, no se puede ver / ver). Además, es completamente posible tener 2 archivos de diseño completamente diferentes para vertical / horizontal que potencialmente tengan diferentes elementos de interfaz de usuario con ID diferentes.

Como resultado, yo diría que si quieres usar el paquete en onSaveInstanceState para guardar tus propios datos, entonces necesitas agregar lógica extra en tu onCreate (en la actividad 1) para procesar tus propios datos allí (además de hacerlo condicionalmente en onRestoreInstanceState ).

En particular, podría mantener un campo de orientación ''último conocido'' para que onCreate sepa que necesita procesar sus propios datos porque la orientación ha cambiado, en lugar de depender de que se onRestoreInstanceState a onRestoreInstanceState .


public class MainActivity extends AppCompatActivity { private final static String TAG = "AppActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "onCreate(Bundle) called"); setContentView(R.layout.activity_main); } @Override public void onStart() { super.onStart(); Log.d(TAG, "onStart() called"); } @Override public void onPause() { super.onPause(); Log.d(TAG, "onPause() called"); } @Override public void onResume() { super.onResume(); Log.d(TAG, "onResume() called"); } @Override public void onStop() { super.onStop(); Log.d(TAG, "onStop() called"); } @Override public void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy() called"); }

}

1) Intente ejecutar su aplicación en su teléfono y / o emulador y abra Logcat => en la parte superior de la ventana, seleccione Verbose.

2) Ahora intente cambiar la orientación de la pantalla (por ejemplo desde el retrato => modo horizontal).

Espero que esta alternativa te brinde más información sobre el ciclo de vida de la actividad.