在Android的画中画模式下检测关闭和最大化点击事件
Posted
技术标签:
【中文标题】在Android的画中画模式下检测关闭和最大化点击事件【英文标题】:detect close and maximize clicked event in Picture In Picture mode in Android 【发布时间】:2018-04-14 11:00:45 【问题描述】:如何检测用户是否点击了 PIP 小窗口中的原生关闭和最大化按钮。有没有我可以听的听众。现在我的接收器只听我在布局中定义的控件,但是像 [] max 按钮和 X 关闭按钮这样的非自定义按钮是 PIP 的一部分。请参阅链接 link
【问题讨论】:
当用户在画中画模式下点击关闭按钮时,android会调用activity的onStop()方法。与恢复按钮和 onResume() 相同 【参考方案1】:无法检测对任何默认 PiP 按钮的点击。
当您的活动进入画中画模式时,实际上会启动另一个名为PiPMenuActivity 的系统活动。在其中,在这些 PiP 按钮中设置了一些 OnClickListener。当它们被点击时,不会向系统发送任何广播、意图或类似的东西,因此您可以收听它,PiP API 也没有提供将监听器附加到这些按钮的方法。
目前检测到这一点的唯一方法是使用您的活动的 onResume 和 onStop 方法。当从画中画恢复活动时,会在您的活动上调用 onResume 和 onPictureInPictureModeChanged 回调。当点击关闭按钮时,会调用 onStop 和 onPictureInPictureModeChanged 回调。
【讨论】:
关闭 pip 时未调用 onPictureInPictureModeChanged【参考方案2】:override fun onPictureInPictureModeChanged(
isInPictureInPictureMode: Boolean,
newConfig: Configuration?
)
if (isInPictureInPictureMode)
else
if (lifecycle.currentState == Lifecycle.State.STARTED)
// todo finish your app
没有其他方法我寻找它,我可以通过这种方式解决它。
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 这是怎么工作的..?以上是关于在Android的画中画模式下检测关闭和最大化点击事件的主要内容,如果未能解决你的问题,请参考以下文章