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