Android区分App-In-Background和旋转事件

标签 android android-service audio-recording android-lifecycle

我的根本问题是弄清楚如何确定我的应用程序何时进入后台或进行轮换。

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

  1. 在最终成为设备轮换的生命周期事件期间保持服务运行。
  2. 当应用进入后台时停止服务(以释放麦克风)。

我无法覆盖 onConfigurationChanged,因为我的应用程序使用带有以编程方式添加的 fragment 的操作栏选项卡,并且无法重新扩展 fragment 布局。

克服这些挑战的好方法是什么?到目前为止,我最好的解决方案是更新服务中的计时器,但我想考虑替代方案。我不喜欢计时器,因为在使用语音搜索时争用麦克风是很常见的。

最佳答案

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

此外,您可以覆盖 onCongifurationChanged(),只需确保调用 super.onConfigurationChanged() 以便框架处理方向更改。

关于Android区分App-In-Background和旋转事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12738082/

相关文章:

java - 存在 URI 问题的用户注册

android - OkBuck 和 Realm 的问题

android - ConnectivityManager getActiveNetworkInfo 空指针异常

Android:跟踪有问题的设备

android - 内核空间如何向用户空间发送命令和数据?

java - 以下 DateFormat 是否能够生成与语言环境无关的日期字符串

android - Android:默认录音

c# - 如何使用 C#/WPF 录制音频?

android - 是否可以在单元测试下模拟 android 服务?

java - Android 中的 ACTION_TIME_TICK 问题