系统导航是手势时如何调用onUserLeaveHint?
Posted
技术标签:
【中文标题】系统导航是手势时如何调用onUserLeaveHint?【英文标题】:How to call onUserLeaveHint when the system navigation are by gestures? 【发布时间】:2020-11-20 20:35:06 【问题描述】:此时我正在为 android 实现画中画功能,正如文档所说,当用户使用 onUserLeaveHint() 方法通过主页按钮离开应用程序时,我们应该进入画中画模式,它按预期工作在具有物理按钮的设备中,但是当手机没有并且像 iPhone 这样使用手势时,不会调用 onUserLeaveHint 方法,那么有没有办法捕捉或模拟这种行为?
【问题讨论】:
【参考方案1】:onUserLeaveHint()
不是检测“主页”按钮点击的可靠 Android 生命周期回调。尽管官方文档规定你可以用它来检测“当用户按下 Home 键时”,我发现这是错误的。
例如,onUserLeaveHint()
可能会在提示 Android 原生对话框时调用,或者在您启动另一个 Activity 时调用。
另外,对于您提到的示例,我还发现当启用手势导航(Android 11 及更高版本)并且用户转到“Recents”然后存在应用程序 - onUserLeaveHint()
将不会被调用。
不幸的是,直到今天我还没有找到任何密封的方法来检测 Android 中的“主页”按钮点击。我猜操作系统设计者不希望应用开发者轻易发现这一点。
【讨论】:
以上是关于系统导航是手势时如何调用onUserLeaveHint?的主要内容,如果未能解决你的问题,请参考以下文章
swift - 指定VC隐藏导航栏 - 禁用tabbar的根控制器手势,防止两个tabbar跳转 手势冲突