Multi-Window — ay isang set ng multitasking mode sa Android na nagpapahintulot sa pagpapatakbo ng maraming app nang sabay-sabay sa screen. Kasama sa system ang tatlong mode: Split Screen para hatiin ang screen sa dalawang bahagi, Picture-in-Picture para sa video sa mini-window at Freeform para sa mga window ng arbitraryong laki sa malalaking screen. Ayon sa Android Developers (2025), ang suporta sa Multi-Window ay sapilitan para sa mga device na may lapad ng screen na 600 dp o higit pa, at ang bawat developer ay dapat iakma ang app sa posibleng mga pagbabago sa laki ng window.
Mga pangunahing punto
Multi-Window — ay isang feature ng Android na ipinakilala sa bersyon 7.0 Nougat (API 24), na nagpapahintulot sa pagpapatakbo ng dalawa o higit pang app nang sabay-sabay sa screen. Ang mode ay naging tugon ng Google sa lumalaking kasikatan ng mga tablet at device na may malalaking screen, kung saan ang single-task mode ay naglilimita sa produktibidad.
Bago ang Android 7.0 bawat app ay sumasakop sa buong screen — kapag lumipat sa pagitan ng mga app, ang nauna ay na-minimize. Binago ng Multi-Window ang modelong ito: ngayon ang app ay maaaring sumakop sa bahagi ng screen habang nananatiling aktibo. Para sa developer, nangangahulugan ito na ang onConfigurationChanged at paghawak ng mga pagbabago sa laki ay nagiging sapilitan.
Sa Android 12L (2022) ginawa ng Google ang Multi-Window na default mode para sa mga device na may malalaking screen — lahat ng app sa tablet ay tumatakbo sa mode na nagpapahintulot ng multi-window. Ang exception ay mga app lamang na may tahasang pagbabawal sa manifest.
Split Screen — ang pinakakaraniwang mode. Ang screen ay nahahati sa dalawang bahagi nang pahalang o patayo, hinihila ng user ang separator. Available sa mga telepono at tablet. Ina-activate sa pamamagitan ng Overview (Recents) — sa pamamagitan ng pag-drag ng icon ng app sa itaas o ibabang gilid.
Picture-in-Picture (PiP) — mode para sa video at navigation app. Ang nilalaman ay ipinapakita sa isang lumulutang na mini-window (mga 15–25% ng screen) na maaaring ilipat. Available sa Android 8.0+. Para sa pag-activate, ginagamit ang enterPictureInPictureMode() sa Activity.
Freeform — mode ng mga window ng arbitraryong laki, katulad ng desktop window managers. Available sa Android TV at ilang device na may malalaking screen ng mga manufacturer (Samsung DeX). Ang mga app ay tumatakbo sa mga window na may pamagat at mga button ng kontrol.
Kapag na-activate ng user ang Multi-Window, gumagawa ang Android ng bagong instance ng Activity para sa bawat app at namamahagi ng available na espasyo sa screen. Ang mga aktibidad ay inilalagay sa magkakahiwalay na Task, ngunit gumagamit ng parehong StackView na may separator sa pagitan ng mga ito.
Inaabisuhan ng system ang bawat Activity tungkol sa pagbabago ng laki sa pamamagitan ng onConfigurationChanged(). Kung hindi hinahawakan ng Activity ang kaganapang ito — ito ay muling nilikha (recreate). Para sa Split Screen, ang lapad ng window ay maaaring bumaba sa 220 dp — ang minimum na lapad na sinusuportahan ng platform.
Pinapayagan ng Android ang app na ideklara ang minimum na lapad sa pamamagitan ng android:minWidth at android:minHeight sa manifest. Kung ang available na espasyo ay mas maliit kaysa sa tinukoy na mga halaga — ang Activity ay napupunta sa pause.
Para sa suporta ng Multi-Window kailangan mong itakda ang flag na android:resizeableActivity="true" sa manifest. Nangangahulugan ito na ang app ay maaaring magbago ng laki kapag nagbago ang window. Bilang default sa Android 12L+ lahat ng app ay itinuturing na resizeable — ang flag ay hindi pinapansin.
Kapag nagbago ang laki ng window, ang Activity ay maaaring muling likhain (default) o hawakan ang kaganapan sa onConfigurationChanged, kung sa manifest ay tinukoy ang configChanges="screenSize|smallestScreenSize". Inirerekomenda na tukuyin ang configChanges para sa mga pangunahing Activity upang maiwasan ang pagkawala ng estado.
<activity
android:name=".MainActivity"
android:resizeableActivity="true"
android:configChanges="screenSize|smallestScreenSize|orientation" />
Para sa mga app na hindi sumusuporta sa pagbabago ng laki, nagpapakita ang Android ng dialog ng babala. Sa kasong ito, kapag lumipat sa multi-window mode, maaaring tapusin ng system ang Activity at magpakita ng snackbar na may alok na i-restart.
Binabago ng Multi-Window ang karaniwang lifecycle ng Activity. Kapag ang ibang app ay naging aktibo sa katabing window, ang kasalukuyang Activity ay tumatanggap ng tawag na onPause(), ngunit hindi onStop() — nananatili itong nakikita, kahit na hindi naka-focus. Ito ay mahalaga: ang video player ay dapat magpatuloy sa pag-playback sa onPause, hindi sa onStop.
Kailangan ng developer na makilala ang mga estado: onPause + isInMultiWindowMode() = true ay nangangahulugan lamang ng pagkawala ng focus, hindi pag-alis sa screen. Para sa video at animation, ito ay senyales na huwag ihinto ang pag-playback, alisin lamang ang highlight mula sa mga elemento ng kontrol.
Sa paglabas mula sa Multi-Window onMultiWindowModeChanged() ay tinatawag bago ang onResume(). Nagbibigay ito ng pagkakataon na muling itayo ang interface para sa full-screen mode bago magsimulang makipag-ugnayan ang user.
Unang panuntunan — panatilihin ang estado. Sa multi-window mode ang Activity ay maaaring muling likhain anumang oras. Gamitin ang SavedStateHandle sa ViewModel o onSaveInstanceState para sa lahat ng data na dapat mapanatili sa pagitan ng mga pagbabago sa configuration.
Pangalawa — pagsubok sa minimum na lapad na 220 dp. Ang halagang ito ay itinuturing na pinakamakitid na window sa Split Screen. Ang interface ay dapat manatiling nababasa at functional. Kung ang ilang elemento ay lumalabas sa mga hangganan — gamitin ang Window Size Class para lumipat sa pagitan ng mga layout.
Pangatlo — huwag paganahin ang functionality na hindi gumagana sa Multi-Window. Halimbawa, ang Camera ay maaaring hindi available kung masyadong maliit ang screen. Suriin ang isInMultiWindowMode() bago simulan ang camera o iba pang full-screen function.
Mga madalas itanong
Itakda ang android:resizeableActivity="false" sa manifest. Sa Android 12L+ ang flag ay hindi pinapansin para sa mga device na may malalaking screen, kaya para sa kumpletong pagbabawal gamitin ang android:maxAspectRatio.
Tawagan ang isInMultiWindowMode() mula sa Activity. Ang pamamaraan ay nagbabalik ng true kung ang app ay tumatakbo sa Split Screen, PiP o Freeform. Maaari ka ring mag-subscribe sa onMultiWindowModeChanged().
Sa Android TV tanging Picture-in-Picture mode ang available. Ang Split Screen at Freeform ay hindi sinusuportahan — ang mga TV ay gumagamit ng isang pangunahing screen na may PiP window sa sulok.
Ang foreground-service ay patuloy na gumagana anuman ang mode. Ngunit kung ang app ay lumipat sa PiP, maaaring pansamantalang ihinto ng system ang pagpapatupad upang makatipid ng mga mapagkukunan.
Sinusuportahan ng Android ang Drag and Drop sa pagitan ng mga window sa Multi-Window sa pamamagitan ng ClipData at View.OnDragListener. Ang data ay inililipat sa pamamagitan ng ContentProvider o Intent na may FLAG_GRANT_READ_URI_PERMISSION.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din