# ContentPip

Added in 1.0.0-alpha04

*** ** * ** ***


```
public final class ContentPip
```

<br />

*** ** * ** ***

## Summary

| ### Public methods |
|---|---|
| `static final void` | `https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPip#(androidx.activity.ComponentActivity).disablePipOnAppSwitch(androidx.core.pip.contentpip.ContentPipToken)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/activity/ComponentActivity receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPipToken contentPipToken )` Disables entering PiP on app switch for this Activity with Content PiP. |
| `static final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPipToken` | `https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPip#(androidx.activity.ComponentActivity).enablePipOnAppSwitch(androidx.core.pip.contentpip.ContentPipCallback)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/activity/ComponentActivity receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPipCallback callback )` Enables entering PiP on app switch for this Activity with Content PiP. |

## Public methods

### disablePipOnAppSwitch

Artifact: [androidx.core:core-pip](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/pip/contentpip/ContentPipExt.kt+function:disablePipOnAppSwitch) Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
public static final void disablePipOnAppSwitch(
    @NonNull ComponentActivity receiver,
    @NonNull ContentPipToken contentPipToken
)
```

Disables entering PiP on app switch for this Activity with Content PiP.

This method unregisters the listeners and observers that were added by `https://developer.android.com/reference/androidx/core/pip/contentpip/package-summary#(androidx.activity.ComponentActivity).enablePipOnAppSwitch(androidx.core.pip.contentpip.ContentPipCallback)`. It restores the original window callback and stops monitoring lifecycle and exit hints.

**Threading:** This method must be called on the main thread of your application.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPipToken contentPipToken` | The token returned by `https://developer.android.com/reference/androidx/core/pip/contentpip/package-summary#(androidx.activity.ComponentActivity).enablePipOnAppSwitch(androidx.core.pip.contentpip.ContentPipCallback)`. |

### enablePipOnAppSwitch

Artifact: [androidx.core:core-pip](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/pip/contentpip/ContentPipExt.kt+function:enablePipOnAppSwitch) Added in [1.0.0-alpha04](https://developer.android.com/jetpack/androidx/releases/core#1.0.0-alpha04)

```
public static final @NonNull ContentPipToken enablePipOnAppSwitch(
    @NonNull ComponentActivity receiver,
    @NonNull ContentPipCallback callback
)
```

Enables entering PiP on app switch for this Activity with Content PiP.

This API hooks into standard Activity exit hints to trigger a fallback PiP pipeline when native [Auto-Enter](https://developer.android.com/reference/android/app/PictureInPictureParams#isAutoEnterEnabled()) is suppressed by the OS (e.g. on Quick Switch).

It also automatically monitors the Activity lifecycle and user interactions to "pull back" the player and terminate the fallback task when the user returns to the app.

It is recommended to call this method from `https://developer.android.com/reference/androidx/activity/ComponentActivity#onCreate(android.os.Bundle)`, if it is called multiple times, only the last `https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPipCallback` is effective.

**Threading:** This callback is strictly tied to the UI toolkit and will **always** be executed synchronously on the main thread of your application.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPipCallback callback` | The callback to manage handoff between tasks. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPipToken` | `https://developer.android.com/reference/androidx/core/pip/contentpip/ContentPipToken` that caller can pass to `https://developer.android.com/reference/androidx/core/pip/contentpip/package-summary#(androidx.activity.ComponentActivity).disablePipOnAppSwitch(androidx.core.pip.contentpip.ContentPipToken)`. |