其他分享
首页 > 其他分享> > Android在App-In-Background和Rotation事件之间进行区分

Android在App-In-Background和Rotation事件之间进行区分

作者:互联网

我的基本问题是弄清楚如何确定何时将我的应用置于后台而不是进行轮换.

我有一个用于音乐识别的录音服务.我想智能地管理此服务的生命周期以完成以下任务:

>在最终导致设备轮换的生命周期事件中,保持服务运行.
>将应用置于后台时停止服务(以释放麦克风).

我无法覆盖onConfigurationChanged,因为我的应用程序使用带有以编程方式添加的片段的操作栏选项卡,并且无法重新填充片段布局.

克服这些挑战的好方法是什么?到目前为止,我最好的解决方案是更新服务中的计时器,但我想考虑其他方法.我不喜欢计时器,因为使用语音搜索时通常会发生麦克风争用.

解决方法:

您可以在onPause()中调用getChangingConfigurations()或isChangingConfigurations().这将告诉您方向是否正在改变.如果不是,则可能会进入后台.

另外,您可以重写onCongifurationChanged(),只需确保调用super.onConfigurationChanged(),以便框架可以处理方向更改.

标签:android-service,android-lifecycle,audio-recording,android
来源: https://codeday.me/bug/20191127/2075080.html