Multi-Window: essens, multitaskinglägen på Android

Författare: IT Sectr Publicerad: 2026-06-08 Lästid: 10 min

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 — Androids multitaskingsystem med tre lägen: Split Screen, PiP, Freeform.
  • Split Screen — två appar sida vid sida, avdelaren går att dra, proportioner ändras.
  • Picture-in-Picture — video i ett minifönster ovanför andra appar.
  • Freeform — fönster i godtycklig storlek på Android TV och stora skärmar.
  • ResizeableActivity — flagga i manifestet för att deklarera stöd för flerfönsterläge.

Vad är Multi-Window i Android?

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.

Multi-Window-lägen: Split Screen, PiP, Freeform

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.

Hur Multi-Window fungerar

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.

Anpassa Activity till flerfönsterläge

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.

xml
<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 och Activitys livscykel

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.

Bästa praxis för Multi-Window

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

Hur förbjuder jag Multi-Window för min app?

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.

Hur avgör jag att appen är i Multi-Window?

Anropa isInMultiWindowMode() från Activity. Metoden returnerar true om appen körs i Split Screen, PiP eller Freeform. Du kan också prenumerera på onMultiWindowModeChanged().

Fungerar Multi-Window på Android TV?

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.

Vad händer med foreground-tjänsten i Multi-Window?

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.

Hur hanterar jag Drag and Drop mellan fönster?

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

  • Multi-Window — Android multitasking med tre lägen för samtidig användning av appar.
  • Split Screen — dela skärmen i två delar med dragbar avdelare.
  • Picture-in-Picture — video i minifönster för Android 8.0+.
  • Freeform — fönster i godtycklig storlek på Android TV och Samsung DeX.
  • resizeableActivity — obligatorisk flagga i manifestet för lägesstöd.
  • onMultiWindowModeChanged — callback för ombyggnad av gränssnitt vid in-/utgång.
  • Slutsats — Multi-Window är obligatoriskt att stödja för alla appar på stora skärmar från 2022.

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.

Diskutera projektet

Läs också