Multi-Window ist eine Reihe von Multitasking-Modi in Android, die es ermöglichen, mehrere Apps gleichzeitig auf dem Bildschirm auszuführen. Das System umfasst drei Modi: Split Screen zum Teilen des Bildschirms in zwei Teile, Picture-in-Picture für Video in einem Minifenster und Freeform für Fenster beliebiger Größe auf großen Bildschirmen. Laut Android Developers (2025) ist die Multi-Window-Unterstützung für Geräte mit einer Bildschirmbreite von 600 dp oder mehr obligatorisch, und jeder Entwickler muss seine App an mögliche Änderungen der Fenstergröße anpassen.
Wichtige Erkenntnisse
Multi-Window ist eine Android-Funktion, die in Version 7.0 Nougat (API 24) eingeführt wurde und es ermöglicht, zwei oder mehr Apps gleichzeitig auf dem Bildschirm auszuführen. Der Modus war Googles Antwort auf die wachsende Beliebtheit von Tablets und Geräten mit großen Bildschirmen, bei denen der Einzelaufgabenmodus die Produktivität einschränkt.
Vor Android 7.0 belegte jede App den gesamten Bildschirm — beim Wechsel zwischen Apps wurde die vorherige minimiert. Multi-Window änderte dieses Modell: Jetzt kann eine App einen Teil des Bildschirms belegen und dabei ihren aktiven Zustand beibehalten. Für Entwickler bedeutet dies, dass onConfigurationChanged und die Behandlung von Größenänderungen obligatorisch werden.
Mit Android 12L (2022) machte Google Multi-Window zum Standardmodus für Geräte mit großen Bildschirmen — alle Apps auf Tablets laufen in einem Modus, der Multi-Window ermöglicht. Die einzigen Ausnahmen sind Apps mit einem expliziten Verbot im Manifest.
Split Screen — der am häufigsten verwendete Modus. Der Bildschirm wird horizontal oder vertikal in zwei Teile geteilt, der Benutzer zieht den Teiler. Verfügbar auf Telefonen und Tablets. Aktiviert über Overview (Recents) — durch Ziehen des App-Symbols an den oberen oder unteren Rand.
Picture-in-Picture (PiP) — ein Modus für Video- und Navigations-Apps. Der Inhalt wird in einem schwebenden Minifenster (ca. 15–25 % des Bildschirms) angezeigt, das verschoben werden kann. Verfügbar ab Android 8.0+. Zur Aktivierung verwenden Sie enterPictureInPictureMode() in der Activity.
Freeform — ein Modus für Fenster beliebiger Größe, ähnlich wie Desktop-Fenstermanager. Verfügbar auf Android TV und einigen Großbildschirmgeräten von Herstellern (Samsung DeX). Apps werden in Fenstern mit Titelleiste und Steuertasten ausgeführt.
Wenn ein Benutzer Multi-Window aktiviert, erstellt Android eine neue Activity-Instanz für jede App und verteilt den verfügbaren Bildschirmplatz. Die Activities werden in separaten Tasks platziert, verwenden aber denselben StackView mit einem Teiler dazwischen.
Das System benachrichtigt jede Activity über die Größenänderung durch onConfigurationChanged(). Wenn die Activity dieses Ereignis nicht behandelt, wird sie neu erstellt. Bei Split Screen kann die Fensterbreite auf 220 dp reduziert werden — die von der Plattform unterstützte Mindestbreite.
Android erlaubt einer App, eine Mindestbreite durch android:minWidth und android:minHeight im Manifest zu deklarieren. Wenn der verfügbare Platz kleiner als diese Werte ist, wechselt die Activity in den Pausenzustand.
Um Multi-Window zu unterstützen, müssen Sie das Flag android:resizeableActivity="true" im Manifest setzen. Dies bedeutet, dass die App ihre Größe ändern kann, wenn sich das Fenster ändert. Standardmäßig gelten unter Android 12L+ alle Apps als größenveränderbar — das Flag wird ignoriert.
Wenn sich die Fenstergröße ändert, kann die Activity neu erstellt werden (Standard) oder das Ereignis in onConfigurationChanged behandeln, wenn configChanges="screenSize|smallestScreenSize" im Manifest angegeben ist. Es wird empfohlen, configChanges für wichtige Activities anzugeben, um Statusverluste zu vermeiden.
<activity
android:name=".MainActivity"
android:resizeableActivity="true"
android:configChanges="screenSize|smallestScreenSize|orientation" />
Für Apps, die keine Größenänderung unterstützen, zeigt Android einen Warnhinweis an. In diesem Fall kann das System beim Wechsel in den Multi-Window-Modus die Activity beenden und einen Snackbar mit einem Angebot zum Neustart anzeigen.
Multi-Window ändert den Standard-Lebenszyklus der Activity. Wenn eine andere App im benachbarten Fenster aktiv wird, erhält die aktuelle Activity einen Aufruf von onPause(), aber nicht onStop() — sie bleibt sichtbar, wenn auch nicht im Fokus. Dies ist wichtig: Ein Videoplayer sollte die Wiedergabe bei onPause fortsetzen, nicht bei onStop.
Entwickler müssen zwischen Zuständen unterscheiden: onPause + isInMultiWindowMode() = true bedeutet nur einen Fokusverlust, kein Verlassen des Bildschirms. Für Video und Animationen ist dies ein Signal, die Wiedergabe nicht zu stoppen, sondern nur die Steuerelemente abzuwählen.
Beim Verlassen von Multi-Window wird onMultiWindowModeChanged() vor onResume() aufgerufen. Dies gibt die Möglichkeit, die Benutzeroberfläche für den Vollbildmodus neu aufzubauen, bevor der Benutzer mit der Interaktion beginnt.
Die erste Regel ist, den Zustand zu speichern. Im Multi-Window-Modus kann die Activity jederzeit neu erstellt werden. Verwenden Sie SavedStateHandle im ViewModel oder onSaveInstanceState für alle Daten, die zwischen Konfigurationsänderungen erhalten bleiben sollen.
Die zweite Regel ist, bei einer Mindestbreite von 220 dp zu testen. Dieser Wert gilt als das schmalste Fenster im Split Screen. Die Benutzeroberfläche muss lesbar und funktionsfähig bleiben. Wenn einige Elemente die Grenzen überschreiten, verwenden Sie Window Size Class, um zwischen Layouts zu wechseln.
Die dritte Regel ist, Funktionalitäten zu deaktivieren, die in Multi-Window nicht funktionieren. Beispielsweise kann Kamera nicht verfügbar sein, wenn der Bildschirm zu klein ist. Überprüfen Sie isInMultiWindowMode(), bevor Sie die Kamera oder andere Vollbildfunktionen starten.
Häufig gestellte Fragen
Setzen Sie android:resizeableActivity="false" im Manifest. Unter Android 12L+ wird das Flag für Geräte mit großen Bildschirmen ignoriert. Verwenden Sie daher für ein vollständiges Verbot android:maxAspectRatio.
Rufen Sie isInMultiWindowMode() von der Activity aus auf. Die Methode gibt true zurück, wenn die App im Split Screen, PiP oder Freeform läuft. Sie können auch onMultiWindowModeChanged() abonnieren.
Auf Android TV ist nur der Picture-in-Picture-Modus verfügbar. Split Screen und Freeform werden nicht unterstützt — Fernseher verwenden einen Hauptbildschirm mit einem PiP-Fenster in der Ecke.
Ein Vordergrunddienst arbeitet unabhängig vom Modus weiter. Wenn die App jedoch in den PiP-Modus wechselt, kann das System die Ausführung vorübergehend anhalten, um Ressourcen zu sparen.
Android unterstützt Drag-and-Drop zwischen Fenstern im Multi-Window-Modus über ClipData und View.OnDragListener. Daten werden über ContentProvider oder Intent mit FLAG_GRANT_READ_URI_PERMISSION übertragen.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch