Multi-Window: essenza delle modalità multitasking su Android

Autore: IT Sectr Pubblicato: 2026-06-08 Tempo di lettura: 10 min

Multi-Window è un insieme di modalità multitasking in Android che consente di eseguire più applicazioni sullo schermo contemporaneamente. Il sistema include tre modalità: Split Screen per dividere lo schermo in due parti, Picture-in-Picture per il video in una mini-finestra e Freeform per finestre di dimensioni arbitrarie su schermi grandi. Secondo Android Developers (2025), il supporto Multi-Window è obbligatorio per i dispositivi con larghezza dello schermo di 600 dp o superiore, e ogni sviluppatore deve adattare la propria app ai possibili cambiamenti di dimensione della finestra.

Punti chiave

  • Multi-Window — sistema multitasking Android con tre modalità: Split Screen, PiP, Freeform.
  • Split Screen — due app affiancate, il divisore è trascinabile, le proporzioni cambiano.
  • Picture-in-Picture — video in una mini-finestra sopra le altre app.
  • Freeform — finestre di dimensioni arbitrarie su Android TV e schermi grandi.
  • ResizeableActivity — flag nel manifest per dichiarare il supporto multi-finestra.

Cos'è Multi-Window in Android?

Multi-Window è una funzionalità di Android introdotta nella versione 7.0 Nougat (API 24) che consente di eseguire due o più app sullo schermo contemporaneamente. La modalità è stata la risposta di Google alla crescente popolarità dei tablet e dei dispositivi a schermo grande, dove la modalità a singola attività limita la produttività.

Prima di Android 7.0, ogni app occupava l'intero schermo — quando si passava da un'app all'altra, la precedente veniva ridotta a icona. Multi-Window ha cambiato questo modello: ora un'app può occupare parte dello schermo mantenendo il suo stato attivo. Per gli sviluppatori, ciò significa che onConfigurationChanged e la gestione dei cambiamenti di dimensione diventano obbligatori.

Su Android 12L (2022), Google ha reso Multi-Window la modalità predefinita per i dispositivi a schermo grande — tutte le app sui tablet vengono eseguite in una modalità che consente il multi-finestra. Le uniche eccezioni sono le app con un divieto esplicito nel manifest.

Modalità Multi-Window: Split Screen, PiP, Freeform

Split Screen — la modalità più comune. Lo schermo viene diviso in due parti orizzontalmente o verticalmente, l'utente trascina il divisore. Disponibile su telefoni e tablet. Si attiva tramite Overview (Recents) — trascinando l'icona dell'app verso il bordo superiore o inferiore.

Picture-in-Picture (PiP) — una modalità per app video e di navigazione. Il contenuto viene visualizzato in una mini-finestra fluttuante (circa il 15–25% dello schermo) che può essere spostata. Disponibile su Android 8.0+. Per attivarlo, usa enterPictureInPictureMode() nell'Activity.

Freeform — una modalità per finestre di dimensioni arbitrarie, simile ai gestori di finestre del desktop. Disponibile su Android TV e alcuni dispositivi a schermo grande di produttori (Samsung DeX). Le app vengono eseguite in finestre con barra del titolo e pulsanti di controllo.

Come funziona Multi-Window

Quando un utente attiva Multi-Window, Android crea una nuova istanza di Activity per ogni app e distribuisce lo spazio disponibile dello schermo. Le Activity vengono inserite in Task separati ma utilizzano lo stesso StackView con un divisore tra di esse.

Il sistema notifica ogni Activity del cambiamento di dimensione tramite onConfigurationChanged(). Se l'Activity non gestisce questo evento, viene ricreata. Per Split Screen, la larghezza della finestra può ridursi a 220 dp — la larghezza minima supportata dalla piattaforma.

Android consente a un'app di dichiarare una larghezza minima tramite android:minWidth e android:minHeight nel manifest. Se lo spazio disponibile è inferiore a questi valori, l'Activity va in pausa.

Adattamento dell'Activity alla modalità multi-finestra

Per supportare Multi-Window, è necessario impostare il flag android:resizeableActivity="true" nel manifest. Ciò significa che l'app può ridimensionarsi quando la finestra cambia. Per impostazione predefinita su Android 12L+, tutte le app sono considerate ridimensionabili — il flag viene ignorato.

Quando la dimensione della finestra cambia, l'Activity può essere ricreata (default) o gestire l'evento in onConfigurationChanged se configChanges="screenSize|smallestScreenSize" è specificato nel manifest. Si consiglia di specificare configChanges per le Activity chiave per evitare la perdita di stato.

xml
<activity
    android:name=".MainActivity"
    android:resizeableActivity="true"
    android:configChanges="screenSize|smallestScreenSize|orientation" />

Per le app che non supportano il ridimensionamento, Android mostra una finestra di dialogo di avviso. In questo caso, quando si passa alla modalità multi-finestra, il sistema può terminare l'Activity e mostrare un snackbar con un'offerta per riavviare.

Multi-Window e il ciclo di vita dell'Activity

Multi-Window modifica il ciclo di vita standard dell'Activity. Quando un'altra app diventa attiva nella finestra adiacente, l'Activity corrente riceve una chiamata a onPause() ma non a onStop() — rimane visibile, anche se non in focus. Questo è importante: un lettore video dovrebbe continuare la riproduzione in onPause, non in onStop.

Gli sviluppatori devono distinguere tra stati: onPause + isInMultiWindowMode() = true significa solo una perdita di focus, non un'uscita dallo schermo. Per video e animazioni, questo è un segnale per non fermare la riproduzione ma solo per deselezionare gli elementi di controllo.

Quando si esce da Multi-Window, onMultiWindowModeChanged() viene chiamato prima di onResume(). Ciò dà l'opportunità di ricostruire l'interfaccia per la modalità a schermo intero prima che l'utente inizi a interagire.

Buone pratiche per Multi-Window

La prima regola è salvare lo stato. In modalità multi-finestra, l'Activity può essere ricreata in qualsiasi momento. Usa SavedStateHandle in ViewModel o onSaveInstanceState per tutti i dati che devono persistere tra i cambiamenti di configurazione.

La seconda regola è testare con una larghezza minima di 220 dp. Questo valore è considerato la finestra più stretta in Split Screen. L'interfaccia deve rimanere leggibile e funzionale. Se alcuni elementi superano i limiti, usa Window Size Class per passare da un layout all'altro.

La terza regola è disabilitare le funzionalità che non funzionano in Multi-Window. Ad esempio, Camera potrebbe non essere disponibile se lo schermo è troppo piccolo. Controlla isInMultiWindowMode() prima di avviare la fotocamera o altre funzioni a schermo intero.

Domande frequenti

Come disabilitare Multi-Window per la mia app?

Imposta android:resizeableActivity="false" nel manifest. Su Android 12L+, il flag viene ignorato per i dispositivi a schermo grande, quindi per un divieto completo usa android:maxAspectRatio.

Come determinare se un'app è in Multi-Window?

Chiama isInMultiWindowMode() dall'Activity. Il metodo restituisce true se l'app è in esecuzione in Split Screen, PiP o Freeform. Puoi anche iscriverti a onMultiWindowModeChanged().

Multi-Window funziona su Android TV?

Su Android TV, è disponibile solo la modalità Picture-in-Picture. Split Screen e Freeform non sono supportati — i televisori utilizzano uno schermo principale con una finestra PiP nell'angolo.

Cosa succede a un servizio in primo piano in Multi-Window?

Un servizio in primo piano continua a funzionare indipendentemente dalla modalità. Tuttavia, se l'app passa a PiP, il sistema potrebbe sospendere temporaneamente l'esecuzione per risparmiare risorse.

Come gestire il trascinamento tra finestre?

Android supporta il trascinamento tra finestre in Multi-Window tramite ClipData e View.OnDragListener. I dati vengono trasferiti tramite ContentProvider o Intent con FLAG_GRANT_READ_URI_PERMISSION.

Riepilogo

  • Multi-Window — multitasking Android con tre modalità per il lavoro simultaneo di app.
  • Split Screen — divisione dello schermo in due parti con un divisore trascinabile.
  • Picture-in-Picture — video in una mini-finestra per Android 8.0+.
  • Freeform — finestre di dimensioni arbitrarie su Android TV e Samsung DeX.
  • resizeableActivity — flag obbligatorio nel manifest per il supporto della modalità.
  • onMultiWindowModeChanged — callback per ricostruire l'interfaccia all'ingresso/uscita.
  • Conclusione — Multi-Window è obbligatorio per tutte le app su schermi grandi dal 2022.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche