不幸的是,没有一个谷歌应用程序(YouTube、Duo、Chrome)有这个问题,因为它们往往只使用一个活动,所以当进入或离开画中画时,最近菜单中没有任务问题,因为只有一个任务中包含一个 Activity。这就是为什么当这些应用程序处于画中画模式时,您在最近的菜单中看不到任何条目的原因;它被 API 隐藏了。
如果您在应用程序中使用多个活动,那么您将遇到此问题。这尤其常见,因为大多数应用程序将在启动其应用程序的任务中使用新的 Activity 来容纳其视频播放。
我发现的最佳解决方案是让您的视频播放器 Activity 位于其自己的任务中(设置独特的任务关联)并将其从最近菜单中隐藏。这会导致进入和退出 PiP 时的预期行为,并允许用户在不干扰 PiP 任务的情况下浏览应用程序的其余部分(通过其他任务)。不幸的是,这意味着用户将无法从最近的视频中重新进入您的视频播放器;如果用户使用主页或最近按钮,视频播放器任务最终将被销毁,您的播放器活动将完成。
<activity
android:name=".YourVideoPlayerActivity"
android:resizeableActivity="true"
android:configChanges="keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation"
android:supportsPictureInPicture="true"
android:launchMode="singleTask"
android:taskAffinity=".YourVideoPlayerActivityTask"
android:excludeFromRecents="true"
android:noHistory="true"
android:autoRemoveFromRecents="true" />