usa - Ciclo de vida de la actividad de Android y bloqueo/desbloqueo del dispositivo
sprint unlock free (2)
Acabo de descubrir que cuando el dispositivo tiene la pantalla de bloqueo habilitada, sucede lo siguiente. Para esta actividad, android: screenOrientation = "landscape" se establece en el manifiesto. Luego hago lo siguiente con mi teléfono en modo retrato.
- El usuario abre una actividad.
- onCreated () se llama
- se llama a onStart ()
- onResume () se llama
- El usuario BLOQUEA el dispositivo 4.5 onPause se llama ()
- onDestroy () se llama
- se llama a onCreate ()
- se llama a onStart ()
- onResume () se llama 8.5 onPause se llama ()
- El usuario DESBLOQUEA el dispositivo
- onResume () se llama
- onDestroy () se llama
- se llama a onCreate ()
- se llama a onStart ()
- onResume () se llama.
De acuerdo, no entiendo por qué 6,7,8 se ejecutan después de que se apaga la pantalla ... Tampoco entiendo por qué se ejecutan 11, 12, 13, 14. ¿Suceden cosas raras cuando bloqueo y desbloqueo el dispositivo? De repente, estoy confundido con el ciclo de vida de la actividad ... ¿Alguien puede aclarar esto?
Adjunte el código y el mensaje de registro
package com.example.wf;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("log", "oncreate");
}
@Override
protected void onResume() {
super.onResume();
Log.d("log", "onresume");
};
@Override
protected void onStart() {
super.onStart();
Log.d("log", "onstart");
};
@Override
protected void onPause() {
super.onStart();
Log.d("log", "onpause");
};
@Override
protected void onDestroy() {
Log.d("log", "ondestroy");
super.onDestroy();
};
}
Registrar mensajes
10-05 23:11:07.994: D/log(23810): oncreate
10-05 23:11:07.994: D/log(23810): onstart
10-05 23:11:07.994: D/log(23810): onresume
// LOCK DEVICE
10-05 23:11:19.957: D/log(23810): ondestroy
10-05 23:11:20.007: D/log(23810): oncreate
10-05 23:11:20.007: D/log(23810): onstart
10-05 23:11:20.007: D/log(23810): onresume
// UNLOCK DEVICE
10-05 23:11:57.407: D/log(23810): onresume
10-05 23:11:57.537: D/log(23810): ondestroy
10-05 23:11:57.587: D/log(23810): oncreate
10-05 23:11:57.587: D/log(23810): onstart
10-05 23:11:57.587: D/log(23810): onresume
En teléfonos (o tabletas con el retrato bloqueado de orientación), la pantalla de bloqueo solo es de retrato. Por lo tanto, cuando el dispositivo está bloqueado, el dispositivo cambia automáticamente al modo vertical (causando 6, 7, 8 y 9). Cuando el dispositivo está desbloqueado, se onResume()
medida que su Activity
se hace visible, pero usted está haciendo la transición entre portrait y now locked en landscape, por lo que la actividad se destruye y se recrea en el paisaje.
Para superar el escenario de recreación de actividad, puede manejar los cambios de configuración a nivel de actividad mediante el archivo de manifiesto de Android utilizando el atributo android: configChanges = "orientation".