Multi-Window is a set of multitasking modes in Android that allows running several apps on the screen simultaneously. The system includes three modes: Split Screen for dividing the screen into two parts, Picture-in-Picture for video in a mini-window, and Freeform for windows of arbitrary size on large screens. According to Android Developers (2025), Multi-Window support is mandatory for devices with a screen width of 600 dp or more, and every developer must adapt their app to possible window size changes.
Key Takeaways
Multi-Window is an Android feature introduced in version 7.0 Nougat (API 24) that allows running two or more apps on the screen simultaneously. The mode was Google’s response to the growing popularity of tablets and large-screen devices, where single-task mode limits productivity.
Before Android 7.0, each app occupied the full screen — when switching between apps, the previous one was minimized. Multi-Window changed this model: now an app can occupy part of the screen while maintaining its active state. For developers, this means that onConfigurationChanged and handling size changes become mandatory.
On Android 12L (2022), Google made Multi-Window the default mode for large-screen devices — all apps on tablets run in a mode that allows multi-windowing. The only exceptions are apps with an explicit prohibition in the manifest.
Split Screen — the most common mode. The screen is divided into two parts horizontally or vertically, the user drags the divider. Available on phones and tablets. Activated via Overview (Recents) — by dragging the app icon to the top or bottom edge.
Picture-in-Picture (PiP) — a mode for video and navigation apps. Content is displayed in a floating mini-window (approximately 15–25% of the screen) that can be moved. Available on Android 8.0+. To activate, use enterPictureInPictureMode() in the Activity.
Freeform — a mode for windows of arbitrary size, similar to desktop window managers. Available on Android TV and some large-screen devices from manufacturers (Samsung DeX). Apps run in windows with a title bar and control buttons.
When a user activates Multi-Window, Android creates a new Activity instance for each app and distributes the available screen space. Activities are placed in separate Tasks but use the same StackView with a divider between them.
The system notifies each Activity about the size change through onConfigurationChanged(). If the Activity does not handle this event, it is recreated. For Split Screen, the window width can decrease to 220 dp — the minimum width supported by the platform.
Android allows an app to declare a minimum width through android:minWidth and android:minHeight in the manifest. If the available space is less than these values, the Activity goes into pause.
To support Multi-Window, you need to set the flag android:resizeableActivity="true" in the manifest. This means the app can resize when the window changes. By default on Android 12L+, all apps are considered resizeable — the flag is ignored.
When the window size changes, the Activity can be recreated (by default) or handle the event in onConfigurationChanged if configChanges="screenSize|smallestScreenSize" is specified in the manifest. It is recommended to specify configChanges for key Activities to avoid state loss.
<activity
android:name=".MainActivity"
android:resizeableActivity="true"
android:configChanges="screenSize|smallestScreenSize|orientation" />
For apps that do not support resizing, Android shows a warning dialog. In this case, when switching to multi-window mode, the system may finish the Activity and show a snackbar with an offer to restart.
Multi-Window changes the standard Activity lifecycle. When another app becomes active in the adjacent window, the current Activity receives a call to onPause() but not onStop() — it remains visible, though not in focus. This is important: a video player should continue playback on onPause, not on onStop.
Developers need to distinguish between states: onPause + isInMultiWindowMode() = true means only a loss of focus, not leaving the screen. For video and animations, this is a signal not to stop playback but only to deselect control elements.
When exiting Multi-Window, onMultiWindowModeChanged() is called before onResume(). This gives the opportunity to rebuild the interface for full-screen mode before the user starts interacting.
The first rule is to save state. In multi-window mode, the Activity can be recreated at any moment. Use SavedStateHandle in ViewModel or onSaveInstanceState for all data that should persist between configuration changes.
The second rule is to test at a minimum width of 220 dp. This value is considered the narrowest window in Split Screen. The interface should remain readable and functional. If some elements go out of bounds, use Window Size Class to switch between layouts.
The third rule is to disable functionality that does not work in Multi-Window. For example, Camera may be unavailable if the screen is too small. Check isInMultiWindowMode() before starting the camera or other full-screen functions.
Frequently Asked Questions
Set android:resizeableActivity="false" in the manifest. On Android 12L+, the flag is ignored for large-screen devices, so for a complete prohibition use android:maxAspectRatio.
Call isInMultiWindowMode() from the Activity. The method returns true if the app is running in Split Screen, PiP or Freeform. You can also subscribe to onMultiWindowModeChanged().
On Android TV, only Picture-in-Picture mode is available. Split Screen and Freeform are not supported — TVs use one main screen with a PiP window in the corner.
A foreground service continues working regardless of the mode. However, if the app switches to PiP, the system may temporarily pause execution to save resources.
Android supports Drag and Drop between windows in Multi-Window via ClipData and View.OnDragListener. Data is transferred through ContentProvider or Intent with FLAG_GRANT_READ_URI_PERMISSION.
Summary
We will develop a mobile application turnkey
IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.
Read also