画中画 打开应用程序的新窗口并显示大量最近的任务

Posted

技术标签:

【中文标题】画中画 打开应用程序的新窗口并显示大量最近的任务【英文标题】:Picture in Picture Opens new window of the app and shows tons of recent tasks 【发布时间】:2021-05-14 19:51:20 【问题描述】:

我在按下后退按钮时以 PIP 模式播放我的视频。 一切顺利。视频播放完美。导航等 但问题是当我关闭 PIP 模式时。 在我最近的应用程序窗口上创建了一个新窗口。 图片。 See those white windows those are left by pip mode when i click pip mode close button.

当我关闭点子模式时,有什么办法可以解决这个问题并关闭活动,请帮忙..

【问题讨论】:

看起来就像每当您关闭 PIP 模式时,都会创建一个新的活动实例。您可以修改启动模式来解决此问题。参考:developer.android.com/guide/components/activities/… 和 developer.android.com/guide/components/activities/… 【参考方案1】:

尝试在Manifest 中使用configuration 下面的Activity 以避免多个实例

<activity
      android:name=".view.activities.PlayerActivity"
      android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|uiMode"
      android:excludeFromRecents="true"
      android:launchMode="singleTask"
      android:resizeableActivity="false"
      android:taskAffinity=".PlayerActivity"
      android:supportsPictureInPicture="true"
      android:windowSoftInputMode="adjustResize"
      tools:targetApi="n"/>

在 PIP 模式下关闭时,finishactivity 的以下方法

var isInPipMode: Boolean = false

override fun onPictureInPictureModeChanged(
        isInPictureInPictureMode: Boolean,
        newConfig: Configuration?
    ) 
        super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
        isInPipMode = isInPictureInPictureMode
    

 override fun onStop() 
        super.onStop()
        if(isInPipMode)
            finish()
        
    

【讨论】:

以上是关于画中画 打开应用程序的新窗口并显示大量最近的任务的主要内容,如果未能解决你的问题,请参考以下文章

打开的窗口在任务栏上显示不出来?解决办法

Androd7.0-新特性

从画中画窗口中打开的通知启动 Intent

浏览器打开后如何在电子中更改窗口图标?

怎样让CHROME浏览器永远在所有窗口的最前端?

Gstreamer画中画 - 两个文件并行播放