Android 确定用户是否已按home键或在片段中旋转设备

Android 确定用户是否已按home键或在片段中旋转设备,android,android-fragments,android-lifecycle,screen-rotation,android-homebutton,Android,Android Fragments,Android Lifecycle,Screen Rotation,Android Homebutton,我有一个片段,我正在录制音频,我想在用户按下home键时暂停录制,但继续旋转录制 在onPause、onStop或其他被调用的方法中,我如何区分用户何时按下home键,或者片段是否因为旋转而关闭 我已经研究过如何收听home(主页)按键,但我发现的所有内容都表明它不受支持/不起作用/做不到 我尝试过使用OrientationEventListener,但它似乎被称为不间断,如果我在寻找0、90、180和270,如果orientation从1到0,我的代码仍然会运行 一定有办法区分这一点!?有什么

我有一个片段,我正在录制音频,我想在用户按下home键时暂停录制,但继续旋转录制

在onPause、onStop或其他被调用的方法中,我如何区分用户何时按下home键,或者片段是否因为旋转而关闭

我已经研究过如何收听home(主页)按键,但我发现的所有内容都表明它不受支持/不起作用/做不到

我尝试过使用OrientationEventListener,但它似乎被称为不间断,如果我在寻找0、90、180和270,如果orientation从1到0,我的代码仍然会运行

一定有办法区分这一点!?有什么想法吗

编辑这是我最好的选择吗?-->

编辑

当我按下home(主页)按钮时,我需要在onPause(暂停)或onStop(停止)中停止录制。当我旋转设备时,我需要通过这些方法继续录制。所以我需要一些我可以在这些方法中检查的东西,或者在它告诉我这是一个主压还是一个旋转之前

解决方案


我最后只是锁定了碎片开始时的方向,不允许旋转。不理想,但比任何其他解决方案都更理想。

您可以使用
setRetainInstance(true)
将片段(用于音频录制)标记为“可保留”。当Android系统由于配置更改而关闭您的活动时,您标记为保留的活动片段不会被销毁。通过这种方式,您可以继续录音,当按下HOME键时,肯定会调用onPause(),您可以在其中停止录音。我已经在片段上设置了RetainInstance(true)。在这种情况下没有帮助,因为大部分片段生命周期仍然在设置为true的情况下执行。当按下HOME时,您是否能够在onPause()中暂停音频?如果是,当设备配置时。由于您已经保留了片段状态,所以在执行其生命周期方法时,它应该继续播放音频…不是吗?我可以在onPause中暂停音频。我的问题是,如果我在onPause中暂停音频录制,那么它将在旋转更改时暂停,我不希望它暂停。