Multi-Window: същност, режими на многозадачност в Android

Автор: IT Sectr Публикувано: 2026-06-08 Време за четене: 10 мин

Multi-Window — е набор от режими на многозадачност в Android, позволяващ стартирането на няколко приложения едновременно на екрана. Системата включва три режима: Split Screen за разделяне на екрана на две части, Picture-in-Picture за видео в мини-прозорец и Freeform за прозорци с произволен размер на големи екрани. Според Android Developers (2025), поддръжката на Multi-Window е задължителна за устройства с ширина на екрана 600 dp и повече, и всеки разработчик трябва да адаптира приложението към възможните промени в размера на прозореца.

Основни точки

  • Multi-Window — система за многозадачност на Android с три режима: Split Screen, PiP, Freeform.
  • Split Screen — две приложения едно до друго, разделителят се влачи, пропорциите се променят.
  • Picture-in-Picture — видео в мини-прозорец върху други приложения.
  • Freeform — прозорци с произволен размер на Android TV и големи екрани.
  • ResizeableActivity — флаг в манифеста за обявяване на поддръжка на режим с много прозорци.

Какво е Multi-Window в Android?

Multi-Window — е функция на Android, въведена във версия 7.0 Nougat (API 24), която позволява стартирането на две или повече приложения едновременно на екрана. Режимът стана отговорът на Google на нарастващата популярност на таблетите и устройствата с голям екран, където еднозадачният режим ограничава продуктивността.

Преди Android 7.0 всяко приложение заемаше целия екран — при превключване между приложенията предишното се минимизираше. Multi-Window промени този модел: сега приложението може да заема част от екрана, оставайки активно. За разработчика това означава, че onConfigurationChanged и обработката на промените в размера стават задължителни.

В Android 12L (2022) Google направи Multi-Window режим по подразбиране за устройства с голям екран — всички приложения на таблети се стартират в режим, допускащ множество прозорци. Изключение правят само приложения с изрична забрана в манифеста.

Режими на Multi-Window: Split Screen, PiP, Freeform

Split Screen — най-разпространеният режим. Екранът се разделя на две части хоризонтално или вертикално, потребителят влачи разделителя. Достъпен на телефони и таблети. Стартира се чрез Overview (Recents) — чрез влачене на иконата на приложението към горния или долния ръб.

Picture-in-Picture (PiP) — режим за видео и навигационни приложения. Съдържанието се показва в плаващ мини-прозорец (около 15–25% от екрана), който може да се премества. Достъпен на Android 8.0+. За активиране се използва enterPictureInPictureMode() в Activity.

Freeform — режим на прозорци с произволен размер, подобен на десктоп мениджърите на прозорци. Достъпен на Android TV и някои устройства с голям екран на производители (Samsung DeX). Приложенията се стартират в прозорци със заглавие и бутони за управление.

Как работи Multi-Window

Когато потребителят активира Multi-Window, Android създава нова инстанция на Activity за всяко приложение и разпределя наличното пространство на екрана. Активностите се поставят в отделни Task, но използват един и същ StackView с разделител между тях.

Системата уведомява всяка Activity за промяна на размера чрез onConfigurationChanged(). Ако Activity не обработва това събитие — тя се пресъздава (recreate). За Split Screen ширината на прозореца може да намалее до 220 dp — минималната ширина, поддържана от платформата.

Android позволява на приложението да декларира минимална ширина чрез android:minWidth и android:minHeight в манифеста. Ако наличното пространство е по-малко от посочените стойности — Activity преминава в пауза.

Адаптиране на Activity към режим с много прозорци

За поддръжка на Multi-Window е необходимо да се зададе флагът android:resizeableActivity="true" в манифеста. Това означава, че приложението може да променя размера си при промяна на прозореца. По подразбиране на Android 12L+ всички приложения се считат за resizeable — флагът се игнорира.

При промяна на размера на прозореца Activity може да бъде пресъздадена (по подразбиране) или да обработи събитието в onConfigurationChanged, ако в манифеста са посочени configChanges="screenSize|smallestScreenSize". Препоръчва се посочването на configChanges за ключовите Activity, за да се избегне загуба на състояние.

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

За приложения, които не поддържат промяна на размера, Android показва диалогов прозорец с предупреждение. В този случай при превключване към режим с множество прозорци системата може да прекрати Activity и да покаже snackbar с предложение за рестартиране.

Multi-Window и жизнения цикъл на Activity

Multi-Window променя стандартния жизнен цикъл на Activity. Когато друго приложение стане активно в съседен прозорец, текущата Activity получава извикване onPause(), но не и onStop() — остава видима, макар и не на фокус. Това е важно: видео плейърът трябва да продължи възпроизвеждането при onPause, а не при onStop.

Разработчикът трябва да различава състоянията: onPause + isInMultiWindowMode() = true означава само загуба на фокус, а не напускане на екрана. За видео и анимации това е сигнал да не спира възпроизвеждането, а само да премахне осветяването на контролните елементи.

При излизане от Multi-Window onMultiWindowModeChanged() се извиква преди onResume(). Това дава възможност за преустройване на интерфейса към режим на цял екран, преди потребителят да започне взаимодействие.

Най-добри практики за Multi-Window

Първо правило — запазване на състоянието. В режим с множество прозорци Activity може да бъде пресъздадена по всяко време. Използвайте SavedStateHandle в ViewModel или onSaveInstanceState за всички данни, които трябва да се запазят между промените в конфигурацията.

Второ — тестване на минимална ширина 220 dp. Тази стойност се счита за най-тесния прозорец в Split Screen. Интерфейсът трябва да остане четим и функционален. Ако някои елементи излизат извън границите — използвайте Window Size Class за превключване между оформленията.

Трето — изключване на функционалност, която не работи в Multi-Window. Например Camera може да бъде недостъпна, ако екранът е твърде малък. Проверявайте isInMultiWindowMode() преди стартиране на камерата или други функции на цял екран.

Често задавани въпроси

Как да забраня Multi-Window за моето приложение?

Задайте android:resizeableActivity="false" в манифеста. На Android 12L+ флагът се игнорира за устройства с голям екран, затова за пълна забрана използвайте android:maxAspectRatio.

Как да определя, че приложението е в Multi-Window?

Извикайте isInMultiWindowMode() от Activity. Методът връща true, ако приложението работи в Split Screen, PiP или Freeform. Можете също да се абонирате за onMultiWindowModeChanged().

Работи ли Multi-Window на Android TV?

На Android TV е достъпен само режим Picture-in-Picture. Split Screen и Freeform не се поддържат — телевизорите използват един главен екран с PiP прозорец в ъгъла.

Какво се случва с foreground услугата в Multi-Window?

Foreground услугата продължава работа независимо от режима. Но ако приложението премине в PiP, системата може временно да спре изпълнението за пестене на ресурси.

Как да обработвам Drag and Drop между прозорци?

Android поддържа Drag and Drop между прозорци в Multi-Window чрез ClipData и View.OnDragListener. Данните се предават чрез ContentProvider или Intent с FLAG_GRANT_READ_URI_PERMISSION.

Резюме

  • Multi-Window — многозадачност на Android с три режима за едновременна работа на приложения.
  • Split Screen — разделяне на екрана на две части с влачещ се разделител.
  • Picture-in-Picture — видео в мини-прозорец за Android 8.0+.
  • Freeform — прозорци с произволен размер на Android TV и Samsung DeX.
  • resizeableActivity — задължителен флаг в манифеста за поддръжка на режима.
  • onMultiWindowModeChanged — callback за преустройване на интерфейса при влизане/излизане.
  • Заключение — Multi-Window е задължителен за поддръжка от всички приложения на големи екрани от 2022 г.

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също