Multi-Window — är en uppsättning multitaskinglägen i Android som gör det möjligt att köra flera appar samtidigt på skärmen. Systemet omfattar tre lägen: Split Screen för att dela skärmen i två delar, Picture-in-Picture för video i ett minifönster och Freeform för fönster i godtycklig storlek på stora skärmar. Enligt Android Developers (2025) är Multi-Window-stöd obligatoriskt för enheter med skärmbredd på 600 dp eller mer, och varje utvecklare måste anpassa appen till eventuella ändringar av fönsterstorlek.
Huvudpunkter
Multi-Window — är en Android-funktion som introducerades i version 7.0 Nougat (API 24) som gör det möjligt att köra två eller fler appar samtidigt på skärmen. Läget var Googles svar på den växande populariteten för surfplattor och enheter med stor skärm, där enkeluppgiftsläget begränsar produktiviteten.
Före Android 7.0 tog varje app upp hela skärmen — vid växling mellan appar minimerades den föregående. Multi-Window ändrade denna modell: nu kan en app ta upp en del av skärmen samtidigt som den förblir aktiv. För utvecklaren innebär detta att onConfigurationChanged och hantering av storleksändringar blir obligatoriska.
I Android 12L (2022) gjorde Google Multi-Window till standardläge för enheter med stor skärm — alla appar på surfplattor startas i ett läge som tillåter flera fönster. Undantaget är endast appar med uttryckligt förbud i manifestet.
Split Screen — det vanligaste läget. Skärmen delas i två delar horisontellt eller vertikalt, användaren drar avdelaren. Tillgängligt på telefoner och surfplattor. Aktiveras via Overview (Recents) — genom att dra appikonen till övre eller nedre kanten.
Picture-in-Picture (PiP) — läge för video- och navigationsappar. Innehållet visas i ett flytande minifönster (ungefär 15–25% av skärmen) som kan flyttas. Tillgängligt på Android 8.0+. För aktivering används enterPictureInPictureMode() i Activity.
Freeform — läge för fönster i godtycklig storlek, liknande skrivbordsfönsterhanterare. Tillgängligt på Android TV och vissa tillverkares storskärmsenheter (Samsung DeX). Appar startas i fönster med titel och kontrollknappar.
När användaren aktiverar Multi-Window skapar Android en ny Activity-instans för varje app och fördelar tillgängligt skärmutrymme. Aktiviteterna placeras i separata Task men använder samma StackView med en avdelare mellan dem.
Systemet meddelar varje Activity om storleksändring via onConfigurationChanged(). Om Activity inte hanterar denna händelse — återskapas den (recreate). För Split Screen kan fönsterbredden minska till 220 dp — den minsta bredd som stöds av plattformen.
Android tillåter appen att deklarera minsta bredd via android:minWidth och android:minHeight i manifestet. Om tillgängligt utrymme är mindre än angivna värden — går Activity in i paus.
För Multi-Window-stöd måste du ställa in flaggan android:resizeableActivity="true" i manifestet. Detta innebär att appen kan ändra storlek när fönstret ändras. Som standard på Android 12L+ anses alla appar vara resizeable — flaggan ignoreras.
Vid ändring av fönsterstorlek kan Activity återskapas (standard) eller hantera händelsen i onConfigurationChanged, om configChanges="screenSize|smallestScreenSize" har angetts i manifestet. Det rekommenderas att ange configChanges för viktiga Activity för att undvika tillståndsförlust.
<activity
android:name=".MainActivity"
android:resizeableActivity="true"
android:configChanges="screenSize|smallestScreenSize|orientation" />
För appar som inte stöder storleksändring visar Android en dialogruta med en varning. I detta fall kan systemet vid växling till flerfönsterläge avsluta Activity och visa en snackbar med förslag om omstart.
Multi-Window ändrar Activitys standardlivscykel. När en annan app blir aktiv i ett angränsande fönster får den aktuella Activity anropet onPause() men inte onStop() — den förblir synlig, om än inte i fokus. Detta är viktigt: videospelaren bör fortsätta uppspelning vid onPause, inte vid onStop.
Utvecklaren måste särskilja tillstånd: onPause + isInMultiWindowMode() = true innebär endast förlust av fokus, inte att lämna skärmen. För video och animationer är detta en signal att inte stoppa uppspelning, utan bara ta bort markering från kontrollelement.
Vid utgång från Multi-Window anropas onMultiWindowModeChanged() före onResume(). Detta ger möjlighet att bygga om gränssnittet för helskärmsläge innan användaren påbörjar interaktion.
Första regeln — bevara tillstånd. I flerfönsterläge kan Activity återskapas när som helst. Använd SavedStateHandle i ViewModel eller onSaveInstanceState för alla data som måste bevaras mellan konfigurationsändringar.
Andra — testa på minsta bredd 220 dp. Detta värde anses vara det smalaste fönstret i Split Screen. Gränssnittet måste förbli läsbart och funktionellt. Om vissa element går över gränserna — använd Window Size Class för att växla mellan layouter.
Tredje — stäng av funktionalitet som inte fungerar i Multi-Window. Till exempel kan Camera vara otillgänglig om skärmen är för liten. Kontrollera isInMultiWindowMode() innan du startar kameran eller andra helskärmsfunktioner.
Vanliga frågor
Ställ in android:resizeableActivity="false" i manifestet. På Android 12L+ ignoreras flaggan för enheter med stor skärm, så för fullständigt förbud använd android:maxAspectRatio.
Anropa isInMultiWindowMode() från Activity. Metoden returnerar true om appen körs i Split Screen, PiP eller Freeform. Du kan också prenumerera på onMultiWindowModeChanged().
På Android TV är endast Picture-in-Picture-läget tillgängligt. Split Screen och Freeform stöds inte — TV-apparater använder en huvudskärm med PiP-fönster i hörnet.
Foreground-tjänsten fortsätter att fungera oavsett läge. Men om appen går över till PiP kan systemet tillfälligt pausa exekveringen för att spara resurser.
Android stöder Drag and Drop mellan fönster i Multi-Window via ClipData och View.OnDragListener. Data överförs via ContentProvider eller Intent med FLAG_GRANT_READ_URI_PERMISSION.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också