8

如何检测用户是否单击了 PIP 小窗口中的本机关闭和最大化按钮。有没有我可以听的听众。现在我的接收器只听我在布局中定义的控件,但是像 [] max 按钮和 X 关闭按钮这样的非自定义按钮是 PIP 的一部分。请参阅链接 链接

4

2 回答 2

11

无法检测对任何默认 PiP 按钮的点击。

当您的活动进入画中画模式时,实际上会启动另一个名为PiPMenuActivity的系统活动。在其中,在这些 PiP 按钮中设置了一些 OnClickListener。当它们被点击时,不会向系统发送广播、意图或类似的东西,因此您可以收听它,PiP API 也没有提供将侦听器附加到这些按钮的方法。

目前检测到这一点的唯一方法是使用您的活动的 onResume 和 onStop 方法。当从画中画恢复活动时,会在您的活动上调用 onResume 和 onPictureInPictureModeChanged 回调。单击关闭按钮时,将调用 onStop 和 onPictureInPictureModeChanged 回调。

于 2019-05-09T20:35:20.153 回答
0
override fun onPictureInPictureModeChanged(
    isInPictureInPictureMode: Boolean,
    newConfig: Configuration?
) {
    if (isInPictureInPictureMode) {

    } else {
       if (lifecycle.currentState == Lifecycle.State.STARTED) {
           // todo finish your app
       }
    }
}

我没有其他方法寻找它,我可以通过这种方式解决它。

于 2021-10-26T09:54:44.647 回答