Multi-Window: podstata, režimy multitaskingu na Androidu

Autor: IT Sectr Publikováno: 2026-06-08 Doba čtení: 10 min

Multi-Window — je soubor režimů multitaskingu v Androidu, který umožňuje spouštět několik aplikací současně na obrazovce. Systém zahrnuje tři režimy: Split Screen pro rozdělení obrazovky na dvě části, Picture-in-Picture pro video v mini-okně a Freeform pro okna libovolné velikosti na velkých obrazovkách. Podle Android Developers (2025) je podpora Multi-Window povinná pro zařízení s šířkou obrazovky 600 dp a více a každý vývojář musí přizpůsobit aplikaci možným změnám velikosti okna.

Hlavní body

  • Multi-Window — systém multitaskingu Androidu se třemi režimy: Split Screen, PiP, Freeform.
  • Split Screen — dvě aplikace vedle sebe, oddělovač se přetahuje, proporce se mění.
  • Picture-in-Picture — video v mini-okně nad ostatními aplikacemi.
  • Freeform — okna libovolné velikosti na Android TV a velkých obrazovkách.
  • ResizeableActivity — příznak v manifestu pro deklaraci podpory režimu více oken.

Co je Multi-Window v Androidu?

Multi-Window — je funkce Androidu zavedená ve verzi 7.0 Nougat (API 24), která umožňuje spouštět dvě nebo více aplikací současně na obrazovce. Režim byl odpovědí Googlu na rostoucí popularitu tabletů a zařízení s velkou obrazovkou, kde režim jedné úlohy omezuje produktivitu.

Před Androidem 7.0 každá aplikace zabírala celou obrazovku — při přepínání mezi aplikacemi se předchozí minimalizovala. Multi-Window tento model změnil: nyní může aplikace zabírat část obrazovky a zůstat aktivní. Pro vývojáře to znamená, že onConfigurationChanged a zpracování změn velikosti se stávají povinnými.

V Androidu 12L (2022) Google učinil Multi-Window výchozím režimem pro zařízení s velkou obrazovkou — všechny aplikace na tabletech se spouštějí v režimu, který umožňuje více oken. Výjimkou jsou pouze aplikace s výslovným zákazem v manifestu.

Režimy Multi-Window: Split Screen, PiP, Freeform

Split Screen — nejrozšířenější režim. Obrazovka se rozdělí na dvě části horizontálně nebo vertikálně, uživatel přetahuje oddělovač. K dispozici na telefonech a tabletech. Spouští se přes Overview (Recents) — přetažením ikony aplikace k hornímu nebo dolnímu okraji.

Picture-in-Picture (PiP) — režim pro video a navigační aplikace. Obsah se zobrazuje v plovoucím mini-okně (přibližně 15–25 % obrazovky), které lze přesouvat. K dispozici na Android 8.0+. Pro aktivaci se používá enterPictureInPictureMode() v Activity.

Freeform — režim oken libovolné velikosti, podobný desktopovým správcům oken. K dispozici na Android TV a některých zařízeních s velkou obrazovkou výrobců (Samsung DeX). Aplikace se spouštějí v oknech s názvem a tlačítky ovládání.

Jak Multi-Window funguje

Když uživatel aktivuje Multi-Window, Android vytvoří novou instanci Activity pro každou aplikaci a rozdělí dostupný prostor na obrazovce. Aktivity jsou umístěny v samostatných úlohách (Task), ale používají stejný StackView s oddělovačem mezi nimi.

Systém informuje každou Activity o změně velikosti prostřednictvím onConfigurationChanged(). Pokud Activity tuto událost nezpracovává — je znovu vytvořena (recreate). Pro Split Screen se šířka okna může snížit až na 220 dp — minimální šířku podporovanou platformou.

Android umožňuje aplikaci deklarovat minimální šířku pomocí android:minWidth a android:minHeight v manifestu. Pokud je dostupný prostor menší než uvedené hodnoty — Activity přejde do pauzy.

Přizpůsobení Activity režimu více oken

Pro podporu Multi-Window je nutné nastavit příznak android:resizeableActivity="true" v manifestu. To znamená, že aplikace může měnit velikost při změně okna. Ve výchozím nastavení na Android 12L+ jsou všechny aplikace považovány za resizeable — příznak je ignorován.

Při změně velikosti okna může být Activity znovu vytvořena (výchozí) nebo zpracovat událost v onConfigurationChanged, pokud jsou v manifestu uvedeny configChanges="screenSize|smallestScreenSize". Doporučuje se uvádět configChanges pro klíčové Activity, aby se předešlo ztrátě stavu.

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

Pro aplikace, které nepodporují změnu velikosti, Android zobrazí dialogové okno s varováním. V tomto případě při přepnutí do režimu více oken může systém ukončit Activity a zobrazit snackbar s návrhem na restartování.

Multi-Window a životní cyklus Activity

Multi-Window mění standardní životní cyklus Activity. Když se jiná aplikace stane aktivní v sousedním okně, aktuální Activity obdrží volání onPause(), ale ne onStop() — zůstává viditelná, i když není v ohnisku. To je důležité: přehrávač videa by měl pokračovat v přehrávání při onPause, ne při onStop.

Vývojář musí rozlišovat stavy: onPause + isInMultiWindowMode() = true znamená pouze ztrátu ohniska, nikoli opuštění obrazovky. Pro video a animace je to signál nezastavovat přehrávání, pouze odstranit zvýraznění z ovládacích prvků.

Při opuštění Multi-Window je onMultiWindowModeChanged() voláno před onResume(). To poskytuje možnost přestavět rozhraní pro režim celé obrazovky dříve, než uživatel zahájí interakci.

Nejlepší postupy pro Multi-Window

První pravidlo — uchovávat stav. V režimu více oken může být Activity kdykoli znovu vytvořena. Používejte SavedStateHandle v ViewModel nebo onSaveInstanceState pro všechna data, která musí být zachována mezi změnami konfigurace.

Druhé — testovat na minimální šířce 220 dp. Tato hodnota je považována za nejužší okno v Split Screen. Rozhraní musí zůstat čitelné a funkční. Pokud některé prvky překračují hranice — použijte Window Size Class pro přepínání mezi rozvrženími.

Třetí — vypínat funkcionalitu, která nefunguje v Multi-Window. Například Camera může být nedostupná, pokud je obrazovka příliš malá. Zkontrolujte isInMultiWindowMode() před spuštěním kamery nebo jiných funkcí na celou obrazovku.

Často kladené otázky

Jak zakázat Multi-Window pro svou aplikaci?

Nastavte android:resizeableActivity="false" v manifestu. Na Android 12L+ je příznak ignorován pro zařízení s velkou obrazovkou, proto pro úplný zákaz použijte android:maxAspectRatio.

Jak zjistit, že je aplikace v Multi-Window?

Zavolejte isInMultiWindowMode() z Activity. Metoda vrací true, pokud aplikace pracuje v režimu Split Screen, PiP nebo Freeform. Můžete se také přihlásit k odběru onMultiWindowModeChanged().

Funguje Multi-Window na Android TV?

Na Android TV je k dispozici pouze režim Picture-in-Picture. Split Screen a Freeform nejsou podporovány — televizory používají jednu hlavní obrazovku s oknem PiP v rohu.

Co se děje s foreground službou v Multi-Window?

Foreground služba pokračuje v činnosti bez ohledu na režim. Pokud však aplikace přejde do PiP, může systém dočasně pozastavit provádění za účelem úspory zdrojů.

Jak zpracovat přetahování (Drag and Drop) mezi okny?

Android podporuje Drag and Drop mezi okny v Multi-Window prostřednictvím ClipData a View.OnDragListener. Data se přenášejí přes ContentProvider nebo Intent s FLAG_GRANT_READ_URI_PERMISSION.

Shrnutí

  • Multi-Window — multitasking Androidu se třemi režimy pro současnou práci aplikací.
  • Split Screen — rozdělení obrazovky na dvě části s přetahovatelným oddělovačem.
  • Picture-in-Picture — video v mini-okně pro Android 8.0+.
  • Freeform — okna libovolné velikosti na Android TV a Samsung DeX.
  • resizeableActivity — povinný příznak v manifestu pro podporu režimu.
  • onMultiWindowModeChanged — callback pro přestavbu rozhraní při vstupu/výstupu.
  • Závěr — Multi-Window je povinný k podpoře pro všechny aplikace na velkých obrazovkách od roku 2022.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také