Multi-Window: lényeg, multitasking módok Androidon

Szerző: IT Sectr Megjelenés: 2026-06-08 Olvasási idő: 10 perc

Multi-Window — a multitasking módok gyűjteménye Androidban, amely lehetővé teszi több alkalmazás egyidejű futtatását a képernyőn. A rendszer három módot foglal magában: Split Screen a képernyő két részre osztásához, Picture-in-Picture a videóhoz mini-ablakban és Freeform tetszőleges méretű ablakokhoz nagy képernyőkön. A Android Developers (2025) szerint a Multi-Window támogatása kötelező a 600 dp vagy nagyobb képernyőszélességű eszközökön, és minden fejlesztőnek adaptálnia kell az alkalmazást a lehetséges ablakméret-változásokhoz.

Főbb pontok

  • Multi-Window — Android multitasking rendszere három móddal: Split Screen, PiP, Freeform.
  • Split Screen — két alkalmazás egymás mellett, az elválasztó húzható, arányok változnak.
  • Picture-in-Picture — videó mini-ablakban más alkalmazások felett.
  • Freeform — tetszőleges méretű ablakok Android TV-n és nagy képernyőkön.
  • ResizeableActivity — flag a manifestben a többablakos mód támogatásának deklarálásához.

Mi az a Multi-Window Androidban?

Multi-Window — egy Android funkció, amely a 7.0 Nougat (API 24) verzióban került bevezetésre, és lehetővé teszi két vagy több alkalmazás egyidejű futtatását a képernyőn. A mód a Google válasza volt a táblagépek és nagy képernyős eszközök növekvő népszerűségére, ahol az egyfeladatos mód korlátozza a termelékenységet.

Az Android 7.0 előtt minden alkalmazás a teljes képernyőt foglalta el — az alkalmazások közötti váltáskor az előző minimalizálódott. A Multi-Window megváltoztatta ezt a modellt: most az alkalmazás elfoglalhatja a képernyő egy részét, miközben aktív marad. A fejlesztő számára ez azt jelenti, hogy onConfigurationChanged és a méretváltozások kezelése kötelezővé válik.

Az Android 12L (2022) rendszerben a Google a Multi-Window-t tette alapértelmezett móddá a nagy képernyős eszközökön — a táblagépeken minden alkalmazás olyan módban indul, amely engedélyezi a többablakos működést. Kivételt csak a manifestben kifejezetten tiltott alkalmazások képeznek.

Multi-Window módok: Split Screen, PiP, Freeform

Split Screen — a legelterjedtebb mód. A képernyő két részre oszlik vízszintesen vagy függőlegesen, a felhasználó húzza az elválasztót. Elérhető telefonokon és táblagépeken. Az Overview (Recents) menüponton keresztül aktiválható — az alkalmazás ikonjának a felső vagy alsó szélére húzásával.

Picture-in-Picture (PiP) — mód videó- és navigációs alkalmazásokhoz. A tartalom egy lebegő mini-ablakban jelenik meg (a képernyő kb. 15–25%-a), amely mozgatható. Elérhető Android 8.0+. Aktiváláshoz az Activity enterPictureInPictureMode() függvényét használjuk.

Freeform — tetszőleges méretű ablakok módja, hasonló az asztali ablakkezelőkhöz. Elérhető Android TV-n és egyes gyártók nagy képernyős eszközein (Samsung DeX). Az alkalmazások címsorral és vezérlőgombokkal ellátott ablakokban indulnak.

Hogyan működik a Multi-Window

Amikor a felhasználó aktiválja a Multi-Window-t, az Android új Activity példányt hoz létre minden alkalmazáshoz, és elosztja a rendelkezésre álló képernyőterületet. Az aktivitások külön Task-okba kerülnek, de ugyanazt a StackView-t használják, közöttük elválasztóval.

A rendszer értesíti minden Activity-t a méretváltozásról a onConfigurationChanged() függvényen keresztül. Ha az Activity nem kezeli ezt az eseményt — újra létrejön (recreate). Split Screen esetén az ablak szélessége 220 dp-ig — a platform által támogatott minimális szélességig — csökkenhet.

Az Android lehetővé teszi az alkalmazás számára a minimális szélesség deklarálását a android:minWidth és android:minHeight segítségével a manifestben. Ha a rendelkezésre álló hely kisebb a megadott értékeknél — az Activity szünetre lép.

Activity adaptálása többablakos módra

A Multi-Window támogatásához be kell állítani a android:resizeableActivity="true" flag-et a manifestben. Ez azt jelenti, hogy az alkalmazás képes méretet változtatni az ablak változásakor. Alapértelmezés szerint Android 12L+ rendszeren minden alkalmazás resizeable-nak minősül — a flag figyelmen kívül hagyásra kerül.

Az ablak méretének változásakor az Activity újra létrejöhet (alapértelmezett) vagy kezelheti az eseményt a onConfigurationChanged függvényben, ha a manifestben meg van adva a configChanges="screenSize|smallestScreenSize". Javasolt a configChanges megadása a kulcsfontosságú Activity-k számára az állapotvesztés elkerülése érdekében.

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

Azoknál az alkalmazásoknál, amelyek nem támogatják a méretváltozást, az Android figyelmeztető párbeszédpanelt jelenít meg. Ebben az esetben a többablakos módba való váltáskor a rendszer befejezheti az Activity-t és megjeleníthet egy snackbar-t az újraindítási javaslattal.

Multi-Window és az Activity életciklusa

A Multi-Window megváltoztatja az Activity szokásos életciklusát. Amikor egy másik alkalmazás aktívvá válik a szomszédos ablakban, a jelenlegi Activity megkapja az onPause() hívást, de nem az onStop() -t — látható marad, bár nem fókuszban. Ez fontos: a videolejátszónak folytatnia kell a lejátszást onPause-kor, nem onStop-kor.

A fejlesztőnek meg kell különböztetnie az állapotokat: onPause + isInMultiWindowMode() = true csak fókuszvesztést jelent, nem a képernyő elhagyását. Videók és animációk esetén ez jelzés arra, hogy ne állítsa le a lejátszást, csak távolítsa el a kiemelést a vezérlőelemekről.

A Multi-Window-ból való kilépéskor az onMultiWindowModeChanged() az onResume() előtt kerül meghívásra. Ez lehetőséget ad a felület teljes képernyős módra való átépítésére, mielőtt a felhasználó megkezdené az interakciót.

Legjobb gyakorlatok Multi-Window-hoz

Első szabály — állapot megőrzése. Többablakos módban az Activity bármikor újra létrejöhet. Használja a SavedStateHandle-t a ViewModel-ben vagy az onSaveInstanceState-t minden olyan adathoz, amelyet meg kell őrizni a konfigurációs változások között.

Második — tesztelés minimális 220 dp szélességen. Ez az érték számít a legkeskenyebb ablaknak Split Screen-ben. A felületnek olvashatónak és funkcionálisnak kell maradnia. Ha egyes elemek túllépik a határokat — használja a Window Size Class-t a layout-ok közötti váltáshoz.

Harmadik — a Multi-Window-ban nem működő funkciók kikapcsolása. Például a Camera elérhetetlen lehet, ha a képernyő túl kicsi. Ellenőrizze az isInMultiWindowMode() függvényt a kamera vagy más teljes képernyős funkciók elindítása előtt.

Gyakran ismételt kérdések

Hogyan tilthatom le a Multi-Window-t az alkalmazásomban?

Állítsa be a android:resizeableActivity="false" értéket a manifestben. Android 12L+ rendszeren a flag figyelmen kívül hagyásra kerül a nagy képernyős eszközökön, ezért a teljes letiltáshoz használja a android:maxAspectRatio értéket.

Hogyan határozhatom meg, hogy az alkalmazás Multi-Window-ban van?

Hívja meg az isInMultiWindowMode() függvényt az Activity-ből. A metódus true értéket ad vissza, ha az alkalmazás Split Screen, PiP vagy Freeform módban működik. Feliratkozhat az onMultiWindowModeChanged() eseményre is.

Működik a Multi-Window Android TV-n?

Android TV-n csak a Picture-in-Picture mód érhető el. A Split Screen és a Freeform nem támogatott — a TV-k egy fő képernyőt használnak PiP-ablakkal a sarokban.

Mi történik a foreground-szolgáltatással Multi-Window-ban?

A foreground-szolgáltatás a módtól függetlenül folytatja a működését. De ha az alkalmazás PiP módba lép, a rendszer ideiglenesen felfüggesztheti a végrehajtást az erőforrások megtakarítása érdekében.

Hogyan kezeljem a Drag and Drop-ot az ablakok között?

Az Android támogatja a Drag and Drop funkciót az ablakok között Multi-Window-ban a ClipData és View.OnDragListener segítségével. Az adatok ContentProvider-en vagy Intent-en keresztül kerülnek átvitelre FLAG_GRANT_READ_URI_PERMISSION címkével.

Összefoglalás

  • Multi-Window — Android multitasking három móddal alkalmazások egyidejű használatához.
  • Split Screen — képernyő két részre osztása húzható elválasztóval.
  • Picture-in-Picture — videó mini-ablakban Android 8.0+ rendszerhez.
  • Freeform — tetszőleges méretű ablakok Android TV-n és Samsung DeX-en.
  • resizeableActivity — kötelező flag a manifestben a mód támogatásához.
  • onMultiWindowModeChanged — visszahívás a felület átépítéséhez belépéskor/kilépéskor.
  • Következtetés — A Multi-Window támogatása kötelező minden alkalmazás számára a nagy képernyőkön 2022-től.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is