FeedMe TTS 锁屏后停止 — 前台服务、电池优化、Keep 机制
TTS 朗读或播客播放时,锁屏或把 FeedMe 切到后台后播放停止——这是 Android Doze 机制和后台限制的另一个典型表现。FeedMe 在播放时会启动前台服务(FOREGROUND_SERVICE_MEDIA_PLAYBACK),但部分系统仍会限制,需要额外操作。
FeedMe 做了什么
FeedMe 在播放 TTS 或播客时:
- 会启动一个前台服务(Foreground Service)
- 通知栏会显示一个常驻通知,告诉你正在播放
- Android 8.0+ 要求前台服务必须有通知栏显示
理论上前台服务不受 Doze 机制限制,但实际上不同 Android 版本和不同厂商 ROM (小米 MIUI、华为 EMUI、OPPO ColorOS 等)有额外的后台限制机制。
最常见原因:TTS 引擎的电池优化
FeedMe 播放 TTS 的流程是:FeedMe → 调用 Android 系统 TTS API → TTS 引擎朗读。
很多人只把 FeedMe 设为「不限制」,但忘了TTS 引擎本身也需要设为不限制。如果 TTS 引擎被 Doze 限制,FeedMe 的前台服务还在,但 TTS 引擎不工作了——听起来就是「锁屏后 TTS 突然停了」。
检查清单:
- Android 设置 → 电池 → 电池优化 → 找到 FeedMe → 「不限制」
- 同样的步骤 → 找到你正在用的 TTS 引擎(Google TTS / 科大讯飞 / 语记 等)→ 「不限制」
- 同样的步骤 → 找到播客播放器相关应用(如果有独立的)→ 「不限制」
不同厂商 ROM 的额外限制
部分国产 ROM 有额外的后台清理机制,即使设了不限制也可能被杀:
小米(MIUI)
设置 → 应用管理 → FeedMe → 自启动:开启设置 → 应用管理 → FeedMe → 省电策略:无限制设置 → 应用管理 → FeedMe → 后台弹出界面:允许
华为(EMUI)
设置 → 电池 → 启动管理 → FeedMe:手动管理 → 允许自启动 + 允许后台活动设置 → 电池 → 锁屏清理应用 → FeedMe:不清理
OPPO(ColorOS)
设置 → 电池 → 耗电保护 → FeedMe:后台冻结关闭、异常耗电关闭
三星(One UI)
设置 → 电池和设备保养 → 电池 → 后台使用限制 → FeedMe:添加到不限制列表
FeedMe 官方推荐:dontkillmyapp.com
FeedMe 官方文档里专门推荐了一个介绍各种 ROM 后台限制和设置方法的网站(dontkillmyapp.com),上面有你设备具体型号对应的操作步骤。
一个简单的测试方法
步骤:
- 在 FeedMe 里开始播客播放或 TTS 朗读
- 锁屏 → 等 5 分钟 → 看是否还在播放
- 切换到后台(比如打开微信)→ 等 5 分钟 → 看是否还在播放
- 如果任何一步停了 → 说明电池优化没设对
预期行为:锁屏和切后台都不影响播放,通知栏常驻显示播放控制。
关于播客 vs TTS
两者的后台行为略有不同:
| 场景 | 播客 | TTS |
|---|---|---|
| FeedMe 前台服务 | ✅ FOREGROUND_SERVICE_MEDIA_PLAYBACK | ✅ 同样用 FOREGROUND_SERVICE_MEDIA_PLAYBACK |
| 需要电池优化的服务 | FeedMe 本身 | FeedMe + TTS 引擎(双重) |
| 锁屏后播放 | 正常(音频播放器优先级高) | 可能被限制(TTS 引擎优先级低) |
播客因为是音频播放器行为,优先级通常比 TTS 高——锁屏后播客一般不会停。TTS 涉及额外的 TTS 引擎调用,更容易被 Doze 限制。