Life Cycles
Un'Activity rappresenta una singola user interface. Android mantiene le activity in background tranne quella mostrata a schermo (foreground). Come già visto, questa sorta di stack è gestito dall' Activity Manager che in pratica rende a schermo un'activity in base al suo life cycle.
Durante il lifetime di un'applicazione, ogni activity può trovarsi in diversi life states come mostrato in figura
Tutti i metodi del life cycles sono @override, e possono essere riscritti in modo da ottenere il controllo voluto sull'activity.
Life Time
Il life time comincia con il metodo onCreate e finisce con la chiamata al metodo onDestroy.
- L'onCreate è chiamato quando l'activity comincia la fase di start up. In questo metodo è buona norma inizializzare i componenti dell'activity. Al metodo onCreate è passato come argomento un oggetto Bundle che può essere null o avere uno stato precedentemente salvato dal metodo onSaveInstanceState.
- L'onDestroy è chiamato quando l'activity viene terminata. E' buona norma chiudere qui tutte le connessione e rilasciare tutte le risorse create. In caso di poca memoria Android killerà l'activity senza passare per l'onDestroy
- L'onRestoreInstanceState riceve l'oggetto Bundle salvato dal metodo onSaveInstanceState per reinizializzare l'activity.
Visibility
Con la chiamata al metodo onStart inizia la visibilità dell'activity, essa è visualizzata sul dispaly fino alla chiamata del metodo onStop.
- L'onStart rende visibile l'activity sul dispaly
- L'onStop mette in pausa l'activity. Qui si dovrebbero fermare le animazioni, i thread, i listener, i sensori ... e tutti gli altri task in esecuzione.
Per poter riavviare i task si usano i metodi onRestart e onStart
- L'onRestart è invocato immediatamente dopo l'onStart. Qui si possono implementare comportamenti particolari dell'activity prima che ritorni visibile
Activity Time
Un'activity che si trova in Activity Time riceve gli input degli utenti e interagisce con loro. Questo ciclo è richiamato molto probabilmente più volte in base al focus dell'activity stessa.
- L'onResume è richiamato ogni volta che l'activity interagisce con l'utente.
- L'onPause è richiamato quando l'activity sta per essere messa in background.
- L'onSaveInstanceState è richiamato subito prima dell'onPause. Esso salva in un' oggetto Bundle lo stato corrente dell'activity