Sobes.tech
Junior

Quelles méthodes du cycle de vie de l'Activity connaissez-vous et comment sont-elles exécutées?

sobes.tech IA

Réponse de l'IA

  • onCreate(): Appelé lors de la première création de l'Activity. Utilisé pour initialiser l'interface utilisateur et les données.
  • onStart(): L'Activity devient visible pour l'utilisateur.
  • onResume(): L'Activity devient active et est au premier plan. L'utilisateur peut interagir avec elle.
  • onPause(): Appelé lorsque l'Activity passe en arrière-plan ou qu'une autre Activity la couvre partiellement. Utilisé pour sauvegarder l'état à restaurer rapidement.
  • onStop(): L'Activity n'est plus visible pour l'utilisateur. Utilisé pour libérer les ressources inutilisées.
  • onDestroy(): Appelé avant que l'Activity ne soit détruite. Utilisé pour nettoyer les ressources finales.
  • onRestart(): Appelé après onStop(), lorsque l'Activity redevient visible.

Séquence d'exécution des méthodes au démarrage : onCreate() -> onStart() -> onResume().

Séquence lors du passage en arrière-plan (par exemple, en appuyant sur le bouton Accueil) : onPause() -> onStop().

Séquence lors du retour du fond : onRestart() -> onStart() -> onResume().

Séquence lors de la destruction de l'Activity : onPause() -> onStop() -> onDestroy().

Lors de la rotation de l'écran, l'Activity est détruite et recréée. Séquence : onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume(). Pour sauvegarder l'état, utilisez onSaveInstanceState() (appelé avant onStop()) et la restauration dans onCreate() ou onRestoreInstanceState() (appelé après onStart()).

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main) // Initialisation de l'UI
        // Restaurer l'état depuis savedInstanceState
    }

    override fun onStart() {
        super.onStart()
        // L'Activity devient visible
    }

    override fun onResume() {
        super.onResume()
        // L'Activity est au premier plan, disponible pour interaction
    }

    override fun onPause() {
        super.onPause()
        // L'Activity passe en arrière-plan
        // Sauvegarder l'état rapidement restaurable
    }

    override fun onStop() {
        super.onStop()
        // L'Activity n'est pas visible
        // Libérer les ressources
    }

    override fun onDestroy() {
        super.onDestroy()
        // L'Activity est détruite
        // Nettoyage final des ressources
    }

    override fun onRestart() {
        super.onRestart()
        // L'Activity revient du fond
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        // Sauvegarder l'état avant la destruction
    }

    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
        super.onRestoreInstanceState(savedInstanceState)
        // Restaurer l'état
    }
}