ABC dello sviluppo su Android: Activity Lifecycle

Base dello sviluppo su Android: Activity Lifecycle
Base dello sviluppo su Android: Activity Lifecycle

Nel corso dei tutorials abbiamo spesso implementato il codice java all’interno del metodo onCreate()che AndroidStudio ha creato per noi ogni volta che abbiamo inserito una nuova activity all’interno di un progetto di un’app. Tale fa parte di un vero e proprio ciclo di vita di un’activity che si chiama, per l’appunto, Activity Lifecycle. Esistono diversi metodi che compongo questo “cerchio della vita” e nel corso di quest’articolo vedremo quali sono e quando vengono invocati.
Prima di iniziare però, è bene aprire una piccola parentesi e spiegare cosa intendiamo quando parliamo di activity.

Il concetto di Activity

Un’Activity rappresenta una classe dotata di una propria UI, ovvero è una singola pagina di un’app (quando si ha a che fare con processi che non hanno UI in genere si parla ad esempio di Service).

Activity Lifecycle

I metodi che compongono il lifecycle di un’acitivity sono:

  1. onCreate()
  2. onStart()
  3. onResume()
  4. onPause()
  5. onStop()
  6. onRestart() – onDestroy()

Analizziamoli singolarmente e vediamo in quali occasioni essi vengono invocati.

onCreate()

E’ il primo metodo invocato quando l’activity viene creata per la prima volta. Al suo interno vanno eseguite tutte quelle operazioni di inizializzazione come la creazione della UI, la connessione di dati alle rispettive ListView, ecc…
Il metodo fornisce anche un oggetto di tipo Bundle il quale contiene info sull’activity nel caso in cui fosse stata riaperta in seguito ad una qualche operazione svolta dall’utente.
Viene sempre seguito dal metodo onStart().

onStart()

Questo metodo viene invocato quando l’activity è diventata visibile all’utente.
NOTA: a questo punto l’utente non può ancora interagire con l’app. Un classico esempio è quando apri una pagina e ti appare un popup che copre l’activity. Questo è un classico caso in cui l’activity è visibile ma l’utente ancora non è in grado di interagire con essa. Può essere seguito dai metodi onResume()oppure onPause().

onResume()

Viene invocato quando l’activity passa in primo piano sullo schermo del cellulare. A questo punto l’utente può iniziare la sua interazione con essa.
Sempre seguito dal metodo onPause().

onPause()

All’interno di questo metodo in genere si eseguono operazioni quali ad esempio il salvataggio di dati, l’arresto di animazioni e qualsiasi altra operazione che sia CPU-consuming.
Viene invocato quando ad esempio si sta per aprire una nuova activity, ed è fondamentale che le operazioni eseguite in esso siano il più veloci possibile poichè l’activity successiva non verrà mostrata all’utente finchè onPause() non avrà terminato le sue operazioni.

onStop()

Invocato quando l’activity non è più visibile all’utente pechè ad esempio ne è stata aperta una nuova.
Può essere seguito da onRestart()se l’activity precedente viene riesumata o da onDestroy() se viene distrutta.
NOTA: in questa fase del lifecycle, qualora il sistema dovesse richiedere più risorse l’activity verrebbe terminata ed una successiva invocazione di essa richiederebbe di nuovo la sua creazione tramite il metodo onCreate() invece che la sua riesumazione tramite il metodo onRestart()

onRestart() – onDestroy()

Quando un’activity si trova nella fase di stop ha due possibilità:

  1. viene riesumata e quindi il metodo onRestart() viene rievocato. Tale metodo si posiziona subito dopo il metodo onCreate() e viene sempre seguito da onStart()
  2. viene distrutta perchè il sistema necessita di risorse oppure perchè l’utente ha esplicitamente invocato il metodo finish()

A questo punto spero ti sia più chiaro il concetto di activity lifecycle. In quanto sviluppatore è di fondamentale importanza che tu capisca perfettamente in quali di essi devi implementare le varie parti del codice della tua app. Un errore fatto a questo livello potrebbe ripercuotersi sull’intero funzionamento dell’app finendo con l’offrire una pessima user experience.
Per approfondire i concetti presentati in questo articolo, guarda il nostro tutorial espressamente dedicato al lifecycle di un’activity.

Be the first to comment on "ABC dello sviluppo su Android: Activity Lifecycle"

Leave a comment