按下后退按钮时未调用Android onUserLeaveHint()

Posted

技术标签:

【中文标题】按下后退按钮时未调用Android onUserLeaveHint()【英文标题】:Android onUserLeaveHint() in not called when back button is pressed 【发布时间】:2021-04-20 06:41:17 【问题描述】:

我正在尝试实现 PIP 模式,为此我正在覆盖 onUserLeaveHint() 以在用户离开活动时注册事件,但在按下后退按钮时不会调用它,它只注册主页或最近按钮。

    protected void onUserLeaveHint() 
        super.onUserLeaveHint();
        if (usePipMode)
            setUpPipMode();
        
    

所以,我的问题是,是否可以在 onUserLeaveHint() 中注册后退按钮按下,如果可以,请提供一些代码示例。这会很有帮助。

谢谢。

【问题讨论】:

【参考方案1】:

你可以用 onBackPressed 方法来做到这一点

@Override
public void onBackPressed() 
   onUserLeaveHint()

【讨论】:

感谢您的回答,我也这样做了,但我还添加了 super.onBackPressed();前。删除 super.onBackPressed(); 后它现在正在工作。 调用super.onBackPressed() 将在Activity 上调用finish(),这是返回按钮的正常默认行为。在Activity 上调用finish() 会终止Activity 并转到之前的Activity 是的。感谢您的详细解释。

以上是关于按下后退按钮时未调用Android onUserLeaveHint()的主要内容,如果未能解决你的问题,请参考以下文章

在Android N多窗口模式下按下主页按钮时未调用Activity onStop()

按下后退按钮未触发

为啥当我单击基于导航的应用程序上的后退按钮时未调用 viewdidunload 函数

Android:为EditText打开键盘时处理后退按钮单击

在Android上按下后退按钮时Runnable线程会发生啥?

React-Native:按下 android 硬件后退按钮返回