Ab Android 8.0 (API-Level 26) können Aktivitäten im Modus „Bild im Bild“ (BiB) gestartet werden. BiB ist ein spezieller Mehrfenstermodus, der für die Videowiedergabe, Videoanrufe und die Navigation verwendet wird. Damit kann der Nutzer das vorhandene Aktivitätsfenster an einer Ecke des Bildschirms anpinnen, während er zwischen Apps wechselt oder sich Inhalte auf dem Hauptbildschirm ansieht.
BiB nutzt die Mehrfenstermodus-APIs, die in Android 7.0 verfügbar gemacht wurden, um das angepinnte Video-Overlay-Fenster bereitzustellen. Wenn Sie BiB zu Ihrer App hinzufügen möchten, müssen Sie Ihre Aktivitäten registrieren, die BiB unterstützen, Ihre Aktivität nach Bedarf in den BiB-Modus versetzen und dafür sorgen, dass UI-Elemente ausgeblendet und die Videowiedergabe fortgesetzt wird, wenn sich die Aktivität im BiB-Modus befindet.
Das BiB-Fenster wird in der obersten Ebene des Bildschirms in einer vom System ausgewählten Ecke angezeigt.
BiB wird auch auf kompatiblen Android TV OS-Geräten mit Android 14 (API-Level 34) oder höher unterstützt. Es gibt zwar viele Gemeinsamkeiten, aber bei der Verwendung von BiB auf dem Fernsehersind zusätzliche Aspekte zu berücksichtigen.
Interaktion von Nutzern mit dem BiB-Fenster
Nutzer können das BiB-Fenster an eine andere Position ziehen. Ab Android 12 haben Nutzer außerdem folgende Möglichkeiten:
Einmal auf das Fenster tippen, um eine Umschaltfläche für den Vollbildmodus, eine Schaltfläche zum Schließen, eine Schaltfläche für die Einstellungen und benutzerdefinierte Aktionen anzuzeigen, die von Ihrer App bereitgestellt werden (z. B. Wiedergabesteuerelemente).
Doppeltippen auf das Fenster, um zwischen der aktuellen BiB-Größe und der maximalen oder minimalen BiB-Größe zu wechseln. Wenn Sie beispielsweise doppelt auf ein maximiertes Fenster tippen, wird es minimiert. Das Gegenteil ist ebenfalls möglich.
Das Fenster ausblenden, indem Sie es an den linken oder rechten Rand ziehen. Wenn Sie das Fenster wieder einblenden möchten, tippen Sie entweder auf den sichtbaren Teil des ausgeblendeten Fensters oder ziehen Sie es heraus.
Die Größe des BiB-Fensters durch Zusammen- oder Auseinanderziehen anpassen.
Ihre App steuert, wann die aktuelle Aktivität in den BiB-Modus wechselt. Hier einige Beispiele:
Eine Aktivität kann in den BiB-Modus wechseln, wenn der Nutzer auf die Startbildschirmtaste tippt oder nach oben zum Startbildschirm wischt. So kann Google Maps weiterhin Wegbeschreibungen anzeigen, während der Nutzer gleichzeitig eine andere Aktivität ausführt.
Ihre App kann ein Video in den BiB-Modus versetzen, wenn der Nutzer vom Video zurückkehrt, um andere Inhalte zu suchen.
Ihre App kann ein Video in den BiB-Modus versetzen, während ein Nutzer das Ende einer Folge ansieht. Auf dem Hauptbildschirm werden Werbe- oder Zusammenfassungsinformationen zur nächsten Folge der Serie angezeigt.
Ihre App kann Nutzern die Möglichkeit bieten, zusätzliche Inhalte in die Warteschlange zu stellen, während sie sich ein Video ansehen. Das Video wird im BiB-Modus weiter abgespielt, während auf dem Hauptbildschirm eine Aktivität zur Auswahl von Inhalten angezeigt wird.
BiB-Unterstützung deklarieren
Standardmäßig unterstützt das System BiB nicht automatisch für Apps. Wenn Sie BiB in Ihrer App unterstützen möchten, registrieren Sie Ihre Videoaktivität in Ihrem Manifest, indem Sie android:supportsPictureInPicture auf true setzen. Geben Sie außerdem an, dass Ihre Aktivität Änderungen an der Layoutkonfiguration verarbeitet, damit sie nicht neu gestartet wird, wenn während der Übergänge in den BiB-Modus Layoutänderungen auftreten.
<activity android:name="VideoActivity"
android:supportsPictureInPicture="true"
android:configChanges=
"screenSize|smallestScreenSize|screenLayout|orientation"
...
Bild-im-Bild-Modus mit Jetpack implementieren
Verwenden Sie die Jetpack-Bibliothek „Bild im Bild“, um die Funktion „Bild im Bild“ zu implementieren. Dadurch wird die Integration vereinfacht und häufige In-App-Probleme werden reduziert. Ein Beispiel für die Verwendung finden Sie in unserer Beispiel-App für die Plattform. Wenn Sie die PiP-Funktion lieber mit den Plattform-APIs implementieren möchten, finden Sie weitere Informationen in der folgenden Dokumentation.
Aktivität in den BiB-Modus versetzen
Ab Android 12 können Sie Ihre Aktivität in den BiB-Modus versetzen, indem Sie
das setAutoEnterEnabled Flag auf true setzen. Mit dieser Einstellung wechselt eine Aktivität
nach Bedarf automatisch in den BiB-Modus, ohne dass
enterPictureInPictureMode() in onUserLeaveHint explizit aufgerufen werden muss. Außerdem sind die Übergänge dadurch viel reibungsloser. Weitere Informationen finden Sie unter Übergänge in den BiB-Modus bei der Bedienung über Gesten reibungsloser gestalten.
Wenn Sie auf Android 11 oder niedriger ausgerichtet sind, muss eine Aktivität
enterPictureInPictureMode()
aufrufen, um in den BiB-Modus zu wechseln. Mit dem folgenden Code wird beispielsweise eine Aktivität in den BiB-Modus versetzt, wenn der Nutzer in der Benutzeroberfläche der App auf eine entsprechende Schaltfläche klickt:
Kotlin
override fun onActionClicked(action: Action) { if (action.id.toInt() == R.id.lb_control_picture_in_picture) { activity?.enterPictureInPictureMode() return } }
Java
@Override public void onActionClicked(Action action) { if (action.getId() == R.id.lb_control_picture_in_picture) { getActivity().enterPictureInPictureMode(); return; } ... }
Möglicherweise möchten Sie eine Logik einfügen, die eine Aktivität in den BiB-Modus versetzt, anstatt sie in den Hintergrund zu verschieben. Google Maps wechselt beispielsweise in den BiB-Modus, wenn der Nutzer die Startbildschirm- oder die Schaltfläche für die zuletzt verwendeten Apps drückt, während die App navigiert. Sie können
diesen Fall abfangen, indem Sie
onUserLeaveHint()überschreiben:
Kotlin
override fun onUserLeaveHint() { if (iWantToBeInPipModeNow()) { enterPictureInPictureMode() } }
Java
@Override public void onUserLeaveHint () { if (iWantToBeInPipModeNow()) { enterPictureInPictureMode(); } }
Empfehlung: Nutzern einen reibungslosen Übergang in den BiB-Modus bieten
In Android 12 wurden die animierten Übergänge zwischen Vollbild- und BiB-Fenstern deutlich verbessert. Wir empfehlen dringend, alle entsprechenden Änderungen zu implementieren. Sobald Sie dies getan haben, werden diese Änderungen automatisch auf große Bildschirme wie Faltgeräte und Tablets skaliert, ohne dass weitere Maßnahmen erforderlich sind.
Wenn Ihre App keine entsprechenden Updates enthält, funktionieren die BiB-Übergänge weiterhin, aber die Animationen sind weniger reibungslos. Beim Übergang vom Vollbild- in den BiB-Modus kann es beispielsweise vorkommen, dass das BiB-Fenster während des Übergangs verschwindet, bevor es nach Abschluss des Übergangs wieder angezeigt wird.
Diese Änderungen umfassen Folgendes:
- Übergänge in den BiB-Modus bei der Bedienung über Gesten reibungsloser gestalten
- Eine geeignete
sourceRectHintfür den Wechsel in den und aus dem BiB-Modus festlegen - Nahtlose Größenänderung für Inhalte, die keine Videos sind, deaktivieren
Das Android Kotlin-Beispiel PictureInPicture kann als Referenz für die Aktivierung eines reibungslosen Übergangs dienen.
Übergänge in den BiB-Modus bei der Bedienung über Gesten reibungsloser gestalten
Ab Android 12 bietet das setAutoEnterEnabled Flag eine viel
reibungslosere Animation für den Übergang zu Videoinhalten im BiB-Modus bei der Gesten
navigation, z. B. wenn Sie vom Vollbildmodus zum Startbildschirm wischen.
Führen Sie die folgenden Schritte aus, um diese Änderung vorzunehmen:
Verwenden Sie
setAutoEnterEnabled, umPictureInPictureParams.Builderzu erstellen:Kotlin
setPictureInPictureParams(PictureInPictureParams.Builder() .setAspectRatio(aspectRatio) .setSourceRectHint(sourceRectHint) .setAutoEnterEnabled(true) .build())
Java
setPictureInPictureParams(new PictureInPictureParams.Builder() .setAspectRatio(aspectRatio) .setSourceRectHint(sourceRectHint) .setAutoEnterEnabled(true) .build());
Rufen Sie
setPictureInPictureParamsfrühzeitig mit den aktuellenPictureInPictureParamsauf. Die App wartet nicht auf denonUserLeaveHint-Callback (wie in Android 11).Sie können
setPictureInPictureParamsbeispielsweise bei der ersten Wiedergabe und bei allen nachfolgenden Wiedergaben aufrufen, wenn sich das Seitenverhältnis ändert.Rufen Sie
setAutoEnterEnabled(false)nur bei Bedarf auf. Sie möchten beispielsweise wahrscheinlich nicht in den BiB-Modus wechseln, wenn die aktuelle Wiedergabe pausiert ist.
Eine geeignete sourceRectHint für den Wechsel in den und aus dem BiB-Modus festlegen
Seit der Einführung von BiB in Android 8.0 gibt setSourceRectHint
den Bereich der Aktivität an, der nach dem Übergang in den
BiB-Modus sichtbar ist, z. B. die Grenzen der Videoansicht in einem Videoplayer.
In Android 12 verwendet das System sourceRectHint, um sowohl beim Wechsel in den als auch aus dem BiB-Modus eine viel reibungslosere Animation zu implementieren.
So legen Sie sourceRectHint für den Wechsel in den und aus dem BiB-Modus richtig fest:
Erstellen Sie
PictureInPictureParamsmit den richtigen Grenzen alssourceRectHint. Wir empfehlen außerdem, dem Videoplayer einen Listener für Layoutänderungen anzuhängen:Kotlin
val mOnLayoutChangeListener = OnLayoutChangeListener { v: View?, oldLeft: Int, oldTop: Int, oldRight: Int, oldBottom: Int, newLeft: Int, newTop: Int, newRight: Int, newBottom: Int -> val sourceRectHint = Rect() mYourVideoView.getGlobalVisibleRect(sourceRectHint) val builder = PictureInPictureParams.Builder() .setSourceRectHint(sourceRectHint) setPictureInPictureParams(builder.build()) } mYourVideoView.addOnLayoutChangeListener(mOnLayoutChangeListener)
Java
private final View.OnLayoutChangeListener mOnLayoutChangeListener = (v, oldLeft, oldTop, oldRight, oldBottom, newLeft, newTop, newRight, newBottom) -> { final Rect sourceRectHint = new Rect(); mYourVideoView.getGlobalVisibleRect(sourceRectHint); final PictureInPictureParams.Builder builder = new PictureInPictureParams.Builder() .setSourceRectHint(sourceRectHint); setPictureInPictureParams(builder.build()); }; mYourVideoView.addOnLayoutChangeListener(mOnLayoutChangeListener);
Aktualisieren Sie
sourceRectHintbei Bedarf, bevor das System den Übergang beendet. Wenn das System den BiB-Modus beendet, wird die Ansichtshierarchie der Aktivität in der Zielkonfiguration (z. B. Vollbildmodus) angeordnet. Die App kann ihrer Stammansicht oder Zielansicht (z. B. der Ansicht des Videoplayers) einen Listener für Layoutänderungen anhängen, um das Ereignis zu erkennen undsourceRectHintvor Beginn der Animation zu aktualisieren.Kotlin
// Listener is called immediately after the user exits PiP but before animating. playerView.addOnLayoutChangeListener { _, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom -> if (left != oldLeft || right != oldRight || top != oldTop || bottom != oldBottom) { // The playerView's bounds changed, update the source hint rect to // reflect its new bounds. val sourceRectHint = Rect() playerView.getGlobalVisibleRect(sourceRectHint) setPictureInPictureParams( PictureInPictureParams.Builder() .setSourceRectHint(sourceRectHint) .build() ) } }
Java
// Listener is called right after the user exits PiP but before animating. playerView.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { if (left != oldLeft || right != oldRight || top != oldTop || bottom != oldBottom) { // The playerView's bounds changed, update the source hint rect to // reflect its new bounds. final Rect sourceRectHint = new Rect(); playerView.getGlobalVisibleRect(sourceRectHint); setPictureInPictureParams( new PictureInPictureParams.Builder() .setSourceRectHint(sourceRectHint) .build()); } });
Nahtlose Größenänderung für Inhalte, die keine Videos sind, deaktivieren
In Android 12 wurde das setSeamlessResizeEnabled Flag hinzugefügt, das eine viel
reibungslosere Überblendungsanimation bietet, wenn die Größe von Inhalten, die keine Videos sind, im BiB
Fenster geändert wird. Bisher konnte die Größenänderung von Inhalten, die keine Videos sind, in einem BiB-Fenster zu störenden visuellen Artefakten führen.
So aktivieren Sie die nahtlose Größenänderung für Videoinhalte:
Kotlin
setPictureInPictureParams(PictureInPictureParams.Builder() .setSeamlessResizeEnabled(true) .build())
Java
setPictureInPictureParams(new PictureInPictureParams.Builder() .setSeamlessResizeEnabled(true) .build());
Benutzeroberfläche während der BiB-Wiedergabe verarbeiten
Wenn die Aktivität in den BiB-Modus wechselt oder ihn verlässt, ruft das System Activity.onPictureInPictureModeChanged()
oder Fragment.onPictureInPictureModeChanged() auf.
In Android 15 wurden Änderungen eingeführt, die für einen noch reibungsloseren Übergang in den BiB-Modus sorgen. Das ist von Vorteil für Apps, bei denen UI-Elemente über der Hauptbenutzeroberfläche liegen, die in den BiB-Modus wechselt.
Entwickler verwenden den onPictureInPictureModeChanged()-Callback, um eine Logik zu definieren, mit der die Sichtbarkeit der überlagerten UI-Elemente umgeschaltet wird.
Dieser Callback wird ausgelöst, wenn die Animation für den Wechsel in den oder aus dem BiB-Modus abgeschlossen ist.
Ab Android 15 enthält die PictureInPictureUiState Klasse einen neuen Status.
Mit diesem neuen UI-Status beobachten Apps, die auf Android 15 ausgerichtet sind, dass der Activity#onPictureInPictureUiStateChanged()
Callback mit isTransitioningToPip() aufgerufen wird, sobald die BiB-Animation beginnt.
Es gibt viele UI-Elemente, die für die App im BiB-Modus nicht relevant sind, z. B. Ansichten oder Layouts mit Informationen wie Vorschlägen, dem nächsten Video, Bewertungen und Titeln. Wenn die App in den BiB-Modus wechselt, verwenden Sie den onPictureInPictureUiStateChanged()-Callback, um diese UI-Elemente auszublenden. Wenn die App vom BiB-Fenster in den Vollbildmodus wechselt, verwenden Sie den onPictureInPictureModeChanged()-Callback, um diese Elemente wieder einzublenden, wie in den folgenden Beispielen gezeigt:
Kotlin
override fun onPictureInPictureUiStateChanged(pipState: PictureInPictureUiState) { if (pipState.isTransitioningToPip()) { // Hide UI elements. } }
Java
@Override public void onPictureInPictureUiStateChanged(PictureInPictureUiState pipState) { if (pipState.isTransitioningToPip()) { // Hide UI elements. } }
Kotlin
override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean) { if (isInPictureInPictureMode) { // Unhide UI elements. } }
Java
@Override public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) { if (isInPictureInPictureMode) { // Unhide UI elements. } }
Durch diese schnelle Umschaltung der Sichtbarkeit irrelevanter UI-Elemente (für ein BiB-Fenster) wird ein reibungsloserer Übergang in den BiB-Modus ohne Flackern ermöglicht.
Überschreiben Sie diese Callbacks, um die UI-Elemente der Aktivität neu zu zeichnen. Beachten Sie, dass Ihre Aktivität im BiB-Modus in einem kleinen Fenster angezeigt wird. Nutzer können nicht mit den UI-Elementen Ihrer App interagieren, wenn sich die App im BiB-Modus befindet. Außerdem sind die Details kleiner UI-Elemente möglicherweise schwer zu erkennen. Videoaktivitäten mit minimaler Benutzeroberfläche bieten die beste Nutzererfahrung.
Wenn Ihre App benutzerdefinierte Aktionen für BiB bereitstellen muss, lesen Sie den Abschnitt Steuerelemente hinzufügen auf dieser Seite. Entfernen Sie andere UI-Elemente, bevor Ihre Activity in den BiB-Modus wechselt, und stellen Sie sie wieder her, wenn Ihre Activity wieder im Vollbildmodus angezeigt wird.
Steuerelemente hinzufügen
Im BiB-Fenster können Steuerelemente angezeigt werden, wenn der Nutzer das Menü des Fensters öffnet (indem er auf einem Mobilgerät auf das Fenster tippt oder das Menü mit der TV-Fernbedienung auswählt).
Wenn eine App eine aktive Medien sitzung hat, werden die Steuerelemente „Wiedergabe“, „Pause“, „Weiter“ und „Zurück“ angezeigt.
Sie können auch benutzerdefinierte Aktionen explizit angeben, indem Sie
PictureInPictureParams
mit
PictureInPictureParams.Builder.setActions()
erstellen, bevor Sie in den BiB-Modus wechseln. Übergeben Sie die Parameter dann mit
enterPictureInPictureMode(android.app.PictureInPictureParams)
oder
setPictureInPictureParams(android.app.PictureInPictureParams).
Sei vorsichtig. Wenn Sie mehr als
getMaxNumPictureInPictureActions(),
hinzufügen, erhalten Sie nur die maximale Anzahl.
Videowiedergabe im BiB-Modus fortsetzen
Wenn Ihre Aktivität in den BiB-Modus wechselt, versetzt das System die Aktivität in den pausierten
Zustand und ruft die Aktivität's
onPause()-Methode auf. Die Videowiedergabe sollte nicht pausiert werden, sondern fortgesetzt werden, wenn die Aktivität während des Übergangs in den BiB-Modus pausiert wird.
In Android 7.0 und höher sollten Sie die Videowiedergabe pausieren und fortsetzen, wenn das
System die
onStop() und
onStart() Ihrer Aktivität aufruft. So müssen Sie in onPause() nicht prüfen, ob sich Ihre App im BiB-Modus befindet, und die Wiedergabe nicht explizit fortsetzen.
Wenn Sie das setAutoEnterEnabled-Flag nicht auf true gesetzt haben und die Wiedergabe in Ihrer onPause()-Implementierung pausieren müssen, prüfen Sie mit isInPictureInPictureMode(), ob sich die App im BiB-Modus befindet, und verarbeiten Sie die Wiedergabe entsprechend. Beispiel:
Kotlin
override fun onPause() { super.onPause() // If called while in PiP mode, do not pause playback. if (isInPictureInPictureMode) { // Continue playback. } else { // Use existing playback logic for paused activity behavior. } }
Java
@Override public void onPause() { // If called while in PiP mode, do not pause playback. if (isInPictureInPictureMode()) { // Continue playback. ... } else { // Use existing playback logic for paused activity behavior. ... } }
Wenn Ihre Aktivität vom BiB-Modus zurück in den Vollbildmodus wechselt, wird sie vom System
fortgesetzt und die
onResume()-Methode wird aufgerufen.
Eine einzelne Wiedergabeaktivität für BiB verwenden
In Ihrer App kann ein Nutzer ein neues Video auswählen, während er auf dem Hauptbildschirm nach Inhalten sucht und eine Videowiedergabeaktivität im BiB-Modus ausgeführt wird. Spielen Sie das neue Video im Vollbildmodus in der vorhandenen Wiedergabeaktivität ab, anstatt eine neue Aktivität zu starten, die den Nutzer verwirren könnte.
Damit für Videowiedergabeanfragen nur eine einzelne Aktivität verwendet wird und diese nach Bedarf in den BiB-Modus versetzt oder aus diesem entfernt wird, setzen Sie android:launchMode der Aktivität in Ihrem Manifest auf singleTask:
<activity android:name="VideoActivity"
...
android:supportsPictureInPicture="true"
android:launchMode="singleTask"
...
Überschreiben Sie in Ihrer Aktivität
onNewIntent()
und verarbeiten Sie das neue Video. Beenden Sie bei Bedarf die vorhandene Videowiedergabe.
BiB für Kamera-Apps unterstützen
Wenn Sie BiB für Kamera-Apps aktivieren möchten, müssen Sie dafür sorgen, dass die Kamera im BiB-Modus aktiv bleibt, indem Sie sie nicht schließen, wenn onPause() aufgerufen wird:
Java
@Override
public void onPause() {
super.onPause();
// Don't close the camera if the app is entering PiP mode
if (!isInPictureInPictureMode()) {
closeCamera();
}
}
Wie bei anderen Anwendungsfällen sollten Sie nicht benötigte UI-Elemente (z. B. Steuerelemente und Overlays) ausblenden und benutzerdefinierte Aktionen zur Steuerung der Kamera hinzufügen (z. B. Aufzeichnung beenden oder Kamera drehen).
`sourceRectHint` für reibungslose Übergänge berechnen
Eine genaue sourceRectHint mit den genauen Bildschirmkoordinaten des Kamerasuchers ist für eine reibungslose Animation beim Wechsel in den BiB-Modus unerlässlich. Sie können die Grenzen aus der Vorschauansicht mit getGlobalVisibleRect() abrufen:
Java
View previewView = findViewById(R.id.preview_view);
Rect globalRect = new Rect();
// Ensure the view is laid out before calling getGlobalVisibleRect() to get valid screen coordinates.
previewView.getGlobalVisibleRect(globalRect);
PictureInPictureParams params = new PictureInPictureParams.Builder()
.setSourceRectHint(globalRect)
.build();
setPictureInPictureParams(params);
Best Practices
BiB ist möglicherweise auf Geräten mit wenig RAM deaktiviert. Bevor Ihre App BiB verwendet,
prüfen Sie mit
hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE), ob es verfügbar ist.
BiB ist für Aktivitäten vorgesehen, bei denen Videos im Vollbildmodus wiedergegeben werden. Wenn Sie Ihre Aktivität in den BiB-Modus versetzen, sollten Sie nur Videoinhalte anzeigen. Erfassen Sie, wann Ihre Aktivität in den BiB-Modus wechselt, und blenden Sie UI-Elemente aus, wie unter Benutzeroberfläche während der BiB-Wiedergabe verarbeiten beschrieben.
Wenn sich eine Aktivität im BiB-Modus befindet, erhält sie standardmäßig keinen Eingabefokus. Wenn Sie
Eingabeereignisse im BiB-Modus empfangen möchten, verwenden Sie
MediaSession.setCallback().
Weitere Informationen zur Verwendung von setCallback() finden Sie unter Now Playing
Card anzeigen.
Wenn sich Ihre App im BiB-Modus befindet, kann die Videowiedergabe im BiB-Fenster zu Audiointerferenzen mit einer anderen App führen, z. B. einer Musikplayer-App oder einer App für die Sprachsuche. Um dies zu vermeiden, fordern Sie den Audiofokus an, wenn Sie die Wiedergabe des Videos starten, und verarbeiten Sie Benachrichtigungen über Änderungen des Audiofokus, wie unter Audiofokus verwalten beschrieben. Wenn Sie im BiB-Modus eine Benachrichtigung über den Verlust des Audiofokus erhalten, pausieren oder beenden Sie die Videowiedergabe.
Wenn Ihre App in den BiB-Modus wechselt, wechselt nur die oberste Aktivität in den BiB-Modus. In einigen Fällen, z. B. auf Geräten mit Mehrfenstermodus, wird die Aktivität darunter jetzt angezeigt und ist neben der BiB-Aktivität wieder sichtbar. Sie sollten diesen Fall entsprechend verarbeiten, einschließlich der Aktivität darunter, die einen onResume()- oder einen onPause()-Callback erhält. Es ist auch möglich, dass der Nutzer mit der Aktivität interagiert. Wenn Sie beispielsweise eine Aktivität mit einer Videoliste anzeigen und die Wiedergabeaktivität im BiB-Modus ausgeführt wird, kann der Nutzer ein neues Video aus der Liste auswählen. Die BiB-Aktivität sollte dann entsprechend aktualisiert werden.
Zusätzlicher Beispielcode
Eine Beispiel-App in Kotlin finden Sie unter Android PictureInPicture Sample (Kotlin).