Sia le risorse che il display di uno smartphone sono limitate ed è quindi per questo motivo che le Activity funzionano in modo esclusivo, almeno per quanto riguarda l’interfaccia utente. Non avrebbe senso, infatti, affiancare diverse finestre su una superficie così ridotta quindi l’attività che in quel momento occupa lo schermo è quella che interagisce con l’utente, mentre le altre restano ibernate in modo da ridurre al minimo il consumo di risorse.
Una attività ibernata, una volta ripristinata portandola in primo , riprenderà la sua normale esecuzione dal punto in cui era stata interrotta.
L’avvio da parte dell’utente di un’altra attività non è il solo evento che causa la ibernazione di una attività in corso, anche eventi esterni possono portare una app in stato di ibernazione. Il caso più classico è quello dell’arrivo di una chiamata che arriva mentre si sta usando una applicazione: la app verrà ibernata e verrà richiamata dall’utente appena terminata la chiamata.
Le attività ibernate consumano pochissime risorse di calcolo ed il concetto di chiusura di un programma è poco significativo su Android. Per questo che chi sviluppa software per computer si può trovare all’inizio momentaneamente spiazzato: l’utente, una volta avviata una attività, di fatto non dispone di un bottone per chiuderla, cosa ovviamente impensabile su un PC.
Chiaramente non è detto che le attività su Android non muoiano mai: possono terminare semplicemente perché hanno concluso il loro compito, semplicemente non spetta all’utente la responsabilità di farle terminare.
Anche il sistema stesso può far terminare le attività in caso ritenga che l’attività ibernata non è più utile o in caso necessiti di una maggiore quantità di risorse, in quel caso comincia a terminare le attività in background.
Esistono anche software che permettono di eliminare le attività ibernate a proprio piacimento, ma sono software di terze parti, da installare a parte e non comprese nel sistema.
E’ importante dunque, quando scriviamo una App per Android, includere della nostra attività una uscita automatica se la applicazione deve eseguire un solo compito, questo perché non ha senso consumare seppur poche risorse per mantenere ibernata una attività che ha terminato il suo lavoro.
< Lezione Precedente | Lezione Successiva >