0Pricing
Android Academy · Lezione

Activity e ciclo di vita

Imparare che cos'è un'Activity, comprendere le callback del ciclo di vita dell'Activity (onCreate, onStart, onResume, onPause, onStop, onDestroy) e usare ViewBinding.

Activity e ciclo di vita è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 2 di 7. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 7 lezioni in totale.

Che cos'è un'Activity?

Un'Activity è una singola schermata dell'app Android.

  • Ogni schermata (accesso, home, impostazioni) è un'Activity
  • Gestisce un layout (XML) e le interazioni dell'utente
  • È dichiarata in AndroidManifest.xml

La consideri l'equivalente Android di una pagina web: ogni pagina è un'Activity.

Ciclo di vita di un'Activity

Un'Activity attraversa una serie di stati del ciclo di vita mentre l'utente naviga nell'app:

  • Created → Started → Resumed (visibile e attiva)
  • Paused (parzialmente nascosta)
  • Stopped (completamente nascosta)
  • Destroyed (l'Activity non esiste più)

Può eseguire l'override dei metodi del ciclo di vita per rispondere a queste transizioni.

Callback del ciclo di vita

I sei callback principali del ciclo di vita:

  • onCreate() — l'Activity viene creata. Configuri qui il layout.
  • onStart() — l'Activity diventa visibile.
  • onResume() — l'Activity è in primo piano e l'utente può interagire.
  • onPause() — l'utente sta uscendo. Salvi qui i dati temporanei.
  • onStop() — l'Activity non è più visibile.
  • onDestroy() — l'Activity viene distrutta.

Esempio di MainActivity

Un'Activity minimale con logging del ciclo di vita:

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    private val TAG = "MainActivity"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d(TAG, "onCreate")
    }

    override fun onResume() {
        super.onResume()
        Log.d(TAG, "onResume — user is here")
    }

    override fun onPause() {
        super.onPause()
        Log.d(TAG, "onPause — saving state")
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d(TAG, "onDestroy")
    }
}

Perché il ciclo di vita è importante

Errori comuni causati dall'ignorare il ciclo di vita:

  • Riprodurre un video in onResume ma dimenticare di metterlo in pausa in onPause: la batteria si scarica
  • Registrare un listener di un sensore in onCreate ma non annullarne la registrazione in onDestroy: memory leak
  • Non salvare i dati di un modulo in onPause: l'utente perde i progressi durante una telefonata

Salvare lo stato: onSaveInstanceState

Quando l'utente ruota il telefono, l'Activity viene distrutta e ricreata. Lo stato dell'interfaccia utente va perso.

Salvi lo stato transitorio in onSaveInstanceState(bundle) e lo ripristini in onCreate(savedInstanceState).

Salvare e ripristinare lo stato

Renda persistenti i dati tra i cambiamenti di configurazione:

class CounterActivity : AppCompatActivity() {

    private var count = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_counter)

        // Restore saved state after rotation
        count = savedInstanceState?.getInt("count") ?: 0
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("count", count)
    }
}

Back stack

Android gestisce un back stack di Activity:

  • Avviare una nuova Activity la inserisce nello stack
  • Premere Indietro rimuove l'Activity in cima allo stack e la distrugge
  • L'Activity precedente riprende automaticamente

Per questo non dovrebbe chiamare manualmente finish(), a meno che non desideri rimuovere esplicitamente la schermata corrente dal back stack.

Cambiamenti di configurazione

Per impostazione predefinita, qualsiasi cambiamento di configurazione (rotazione, cambio di lingua, collegamento della tastiera) ricrea l'Activity.

La soluzione moderna consiste nell'usare un ViewModel: sopravvive ai cambiamenti di configurazione e conserva i dati in modo sicuro. Imparerà a usare ViewModel nel modulo Architettura.

Verifica rapida

In quale metodo del ciclo di vita deve configurare il layout (chiamando setContentView)?

Riepilogo: Activity e ciclo di vita

Ora conosce le Activity Android:

  • Un'Activity = una schermata dell'app
  • Ciclo di vita: onCreate → onStart → onResume → onPause → onStop → onDestroy
  • Salvi lo stato transitorio in onSaveInstanceState
  • La rotazione distrugge e ricrea l'Activity
  • Android gestisce automaticamente un back stack

Prossimo argomento: progettare schermate con layout e view.

Domande Frequenti

La lezione «Activity e ciclo di vita» è gratuita?

Sì — il testo completo di «Activity e ciclo di vita» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 7 lezioni in totale.

Cosa imparerò in «Activity e ciclo di vita»?

Imparare che cos'è un'Activity, comprendere le callback del ciclo di vita dell'Activity (onCreate, onStart, onResume, onPause, onStop, onDestroy) e usare ViewBinding. Eserciti Android Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Android Academy?

Non è richiesta alcuna esperienza precedente. Android Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 7.

Quanto tempo richiede la lezione «Activity e ciclo di vita»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Android Academy?

Sì. Ogni lezione Android Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Struttura del progetto e manifest
  2. Activity e ciclo di vita
  3. Layout e viste
  4. Gestione dell'input dell'utente
  5. Intent e navigazione
  6. Fragment
  7. Autorizzazioni e richieste a runtime
← Torna a Android Academy