zhaolewei / ZlwAudioRecorder

AudioRecorder: Android 录音及录音可视化相关lib,支持pcm、wav、mp3音频的录制
Apache License 2.0
953 stars 196 forks source link

Android O及以上版本 Service.startForeground()导致ANR #53

Open yujing66 opened 3 years ago

yujing66 commented 3 years ago

Android 8.0 有一项复杂功能;系统不允许后台应用创建后台服务。 因此,Android 8.0 引入了一种全新的方法,即 Context.startForegroundService(),以在前台启动新服务。 在系统创建服务后,应用有5秒的时间来调用该服务的 startForeground() 方法以显示新服务的用户可见通知。如果应用在此时间限制内未调用 startForeground(),则系统将停止服务并声明此应用为 ANR。

Martin-zhq commented 3 years ago

确实,在应用切换成后台应用后会出现这个异常,看代码老哥应该还没更新,我们处理的方式是监听应用是否切换到后台,如果正在录音,在切换到后台后就默认录音完成...