Android 14中ExoPlayer音频后台运行3分钟后停止问题排查
前台服务配置缺失:Android 12及后续版本要求,后台播放音频必须启动前台服务并展示通知。即便申请了电池优化豁免,若未配置合法的前台服务,系统会在App进入后台约3分钟后限制进程资源,导致播放暂停。可以通过ExoPlayer的
PlayerNotificationManager快速完成前台服务与通知的配置,注意要符合Android 8.0+的通知渠道要求。进程因低内存被回收:Android 14对后台进程的内存管控更严格,即便豁免电池优化,当系统内存紧张或App自身内存占用过高时,低优先级的后台进程仍可能被系统杀死。可通过
adb shell dumpsys meminfo <你的包名>命令查看内存占用,或在开发者选项中开启内存监控功能排查问题。ExoPlayer后台播放逻辑错误:检查ExoPlayer相关配置,比如是否误在后台状态触发了
pause()操作;同时确认setWakeMode()是否设置为WAKE_MODE_LOCAL或WAKE_MODE_NETWORK,避免设备进入深度睡眠导致播放中断。后台通知权限未获取:Android 14要求前台服务必须拥有
POST_NOTIFICATIONS权限,若未在Manifest中声明该权限并在运行时请求用户授权,通知无法正常显示,前台服务会被系统强制终止,进而导致音频播放停止。媒体会话(MediaSession)未正确绑定:ExoPlayer需要绑定MediaSession来向系统标识当前的媒体播放状态,系统会据此提升进程优先级。若MediaSession未正确初始化或与ExoPlayer关联,系统无法识别正在进行的媒体播放,从而在后台限制进程运行。
内容的提问来源于stack exchange,提问作者Kang Soohwan

