Un’activity è uno dei componenti fondamentali di un’app Android e rappresenta di solito una singola schermata con un’interfaccia utente, come una schermata di accesso, un elenco di messaggi o una pagina di impostazioni. Ogni activity è una classe che eredita da Activity o, più spesso, da AppCompatActivity o ComponentActivity, e deve essere registrata nel file AndroidManifest.xml dell’app. Quando l’utente apre l’app dalla schermata Home, il sistema avvia l’activity indicata come punto di ingresso dell’app, e da lì l’app può aprire altre activity tramite gli intent.
Un’activity ha un ciclo di vita controllato dal sistema Android. Tramite metodi come onCreate(), onStart(), onResume(), onPause(), onStop() e onDestroy(), l’app viene avvisata quando la schermata viene creata, diventa visibile, perde il focus o viene chiusa, così da poter rilasciare risorse e salvare dati al momento giusto. Molte app moderne usano una sola activity o poche activity e costruiscono le singole schermate con fragment o Jetpack Compose, ma l’activity resta l’elemento che collega l’interfaccia utente dell’app al sistema.
Nello sviluppo di app, un’activity è una singola schermata di un’applicazione Android che funge da finestra interattiva per l’utente. Ogni activity è responsabile della gestione delle interazioni dell’utente e della presentazione dei dati, il che permette agli sviluppatori di creare esperienze utente dinamiche e coinvolgenti. Le activity possono collaborare passandosi dati, il che garantisce una navigazione e un funzionamento dell’app senza intoppi.
More about Activity
Un’activity è un componente centrale dello sviluppo di applicazioni Android che rappresenta una singola schermata con un’interfaccia utente. Ogni activity è un’unità autonoma che gestisce le interazioni dell’utente e presenta i dati, il che permette agli sviluppatori di creare esperienze utente dinamiche e coinvolgenti. Le activity sono i mattoni fondamentali delle app Android e fungono da punti di ingresso attraverso cui gli utenti interagiscono con le funzioni dell’app.
Dal punto di vista tecnico, un’activity è una sottoclasse della classe Activity dell’Android SDK e funziona gestendo i metodi del ciclo di vita che controllano come l’activity viene creata, avviata, fermata e distrutta. Quando un’activity viene avviata, attraversa una serie di fasi del ciclo di vita che permettono agli sviluppatori di gestire le risorse in modo efficiente e di rispondere alle interazioni dell’utente. Tra questi ci sono metodi come onCreate(), onStart(), onResume(), onPause(), onStop() e onDestroy(), ognuno dei quali contribuisce a garantire un’esperienza utente fluida e reattiva.
Le activity si possono presentare in modi diversi, ognuno dei quali supporta un tipo diverso di interazione:
A schermo intero: qui l’activity funziona come una schermata autonoma che gestisce le interazioni dell’utente e presenta i dati. È la forma più comune, in cui l’utente naviga tra le diverse schermate di un’app.
Come finestra di dialogo: con un tema di dialogo, l’activity viene presentata come una finestra che fluttua sopra la schermata corrente. A volte si usa per mostrare messaggi importanti o richiedere un input all’utente senza lasciare il contesto corrente, anche se le finestre di dialogo vengono implementate più spesso con dialog fragment o Compose.
Modalità immersiva: l’activity prende il pieno controllo dello schermo e nasconde le barre di sistema, come la barra di stato e la barra di navigazione, per offrire un’esperienza immersiva. È ideale per giochi o riproduzione multimediale, dove la concentrazione sui contenuti è cruciale.
Uno dei maggiori punti di forza delle activity è la capacità di gestire interazioni dell’utente e schemi di navigazione complessi. Il modello di activity di Android supporta diversi schemi di navigazione, come il back stack, che permette agli utenti di tornare alle schermate precedenti, creando un’esperienza intuitiva e prevedibile. Inoltre le activity possono condividere dati e comunicare tra loro tramite gli intent, il che consente un’integrazione senza intoppi tra le diverse parti di un’app.
Le activity sono progettate anche per essere efficienti nell’uso delle risorse. I metodi del ciclo di vita di Android permettono agli sviluppatori di ottimizzare il consumo di risorse rilasciando quelle superflue quando un’activity non è visibile e ricaricandole quando torna in primo piano. Ciò aiuta a garantire che le app restino reattive ed efficienti anche sui dispositivi con risorse limitate.
In pratica, le activity hanno plasmato il modo in cui le app Android vengono progettate e sviluppate. Offrono un approccio strutturato alla gestione delle interazioni dell’utente e degli schemi di navigazione, il che permette agli sviluppatori di creare esperienze utente ricche e coinvolgenti. Le activity sono al centro di molte app popolari, dove si usano per organizzare i contenuti, gestire l’input dell’utente e navigare tra le diverse funzioni.
In sintesi, le activity sono una parte essenziale dello sviluppo Android che unisce flessibilità, efficienza e facilità d’uso in una soluzione che permette agli sviluppatori di creare app potenti e intuitive. La loro capacità di gestire cicli di vita e schemi di navigazione complessi le rende uno strumento centrale nello sviluppo di app moderno, in cui esperienza utente e gestione efficiente delle risorse sono cruciali.
Frequently asked questions about Activity
Che cos’è un’activity in Android?
Un’activity è uno dei mattoni fondamentali di un’app Android. Rappresenta di solito una singola schermata con un’interfaccia utente, come una schermata di accesso, un elenco di messaggi o una pagina di impostazioni. L’utente interagisce con l’app tramite le sue activity.
Ogni activity è una classe che eredita da Activity o, più spesso, da AppCompatActivity o ComponentActivity, e deve essere dichiarata nel file AndroidManifest.xml. Un’activity viene contrassegnata come punto di ingresso, così che il sistema sappia cosa aprire quando l’utente tocca l’icona dell’app. Le app moderne hanno spesso poche activity e usano fragment o Jetpack Compose per mostrare le diverse schermate.
Come funziona il ciclo di vita di un’activity?
Un’activity attraversa una serie di stati dal momento in cui viene creata fino alla chiusura. Android chiama metodi specifici quando lo stato cambia. onCreate viene chiamato quando l’activity viene creata, ed è qui che si imposta l’interfaccia utente. onStart e onResume vengono chiamati quando diventa visibile e pronta all’uso.
Quando l’utente passa a un’altra app o schermata, vengono chiamati onPause e onStop, e quando l’activity viene chiusa del tutto viene chiamato onDestroy. Inserendo il codice nei metodi giusti, l’app può per esempio fermare un video quando non è visibile e salvare i dati prima della chiusura. Una gestione errata può causare errori e sprecare risorse.
Come passa un’app da un’activity all’altra?
Un’app passa da un’activity a un’altra tramite un intent. Un intent descrive quale activity va aperta e può contenere dati, come l’ID di un prodotto che la nuova schermata deve mostrare. L’intent viene inviato con il metodo startActivity.
La nuova activity viene posta in cima a una pila chiamata back stack. Quando l’utente preme Indietro, l’activity in cima viene chiusa e quella precedente torna visibile. Se la nuova schermata deve restituire un risultato, come un’immagine selezionata, si usa l’Activity Result API. Molte app moderne, però, usano una sola activity e il componente Navigation per passare da una schermata all’altra al suo interno.
Che cosa succede a un’activity quando si ruota lo schermo?
Quando l’utente ruota il telefono, la configurazione cambia e, per impostazione predefinita, Android distrugge l’activity corrente e la ricrea. Ciò permette di caricare un layout diverso adatto al nuovo orientamento, ma significa anche che i dati conservati solo nell’activity possono andare persi.
Per evitarlo si usa di solito un ViewModel, che sopravvive ai cambi di configurazione e conserva dati come gli elenchi caricati. Piccole quantità di stato, come il testo in un campo o una posizione di scorrimento, si possono salvare con onSaveInstanceState o con rememberSaveable in Jetpack Compose. Lo stesso vale quando cambiano la lingua, il tema o le dimensioni dello schermo.
Qual è la differenza tra un’activity e un fragment?
Un’activity è un componente autonomo noto al sistema e dichiarato in AndroidManifest.xml. Funge da contenitore per l’interfaccia utente dell’app e può essere avviata direttamente, per esempio da una notifica o da un’altra app.
Un fragment è una parte più piccola e riutilizzabile dell’interfaccia utente che vive sempre all’interno di un’activity. Più fragment possono essere mostrati nella stessa activity, come un elenco e una vista di dettaglio affiancati su un tablet. I fragment hanno un proprio ciclo di vita, legato all’activity che li ospita. Molte app usano poche activity e molti fragment o schermate Compose.
Che cosa sono le modalità di avvio (launch mode) di un’activity?
Le modalità di avvio determinano come una nuova activity viene collocata rispetto a quelle esistenti quando viene avviata. Per impostazione predefinita viene creata ogni volta una nuova istanza, anche se la stessa activity è già aperta.
Con singleTop l’activity viene riutilizzata se è già in cima alla pila, invece di crearne una nuova. Con singleTask esiste una sola istanza e le activity sopra di essa vengono rimosse quando viene riaperta. singleInstance colloca l’activity in un task tutto suo e, da Android 12, singleInstancePerTask consente un’istanza per task. Le modalità di avvio si specificano in AndroidManifest.xml o con flag su un intent e si usano, per esempio, per evitare duplicati quando l’app viene aperta da una notifica.
Activity for dummies
Un’activity in un’app è come una singola schermata sul telefono. Pensala come una pagina di un libro. Quando apri un’app, compare una schermata in cui puoi fare qualcosa di specifico, come leggere notizie, inviare un messaggio o guardare foto. Ognuna di queste schermate è un’“activity”. Passare dalla lettura delle notizie all’invio di un messaggio significa passare da un’activity a un’altra. È il modo in cui le app organizzano funzioni e informazioni diverse, così da essere facili da navigare e usare.