通知与后台下载 — 不让 Seal 被系统杀掉的权限组合
为什么需要通知权限
Seal 下载时需要长时间在后台运行——这在安卓上有个死敌:Doze 模式(安卓 6.0 起引入的省电机制,会在设备空闲时限制后台应用的活动)。
Seal 的应对方案是前台服务(Foreground Service):它会让安卓认为"这个应用在做一个用户感知的重要后台任务",从而不杀掉进程。而前台服务的必要条件就是发一个常驻通知——这也是 Seal 为什么要请求通知权限的原因。
下载时的通知表现
下载进行中通知栏会显示:
- Seal 应用图标(上面可能有个数字角标表示正在运行的任务数,v1.9.0 起)
- 当前任务的视频/音频标题
- 进度条(百分比)
- 速度和预计剩余时间
v1.10.0 起通知默认开启,可以在设置里关掉——但关掉意味着前台服务也无法启动,下载进程可能随时被系统杀掉,不建议。
电池优化豁免
除了通知,Seal 还会请求 "忽略电池优化" 权限:这个权限让安卓在 Doze 模式下也不限制 Seal 的网络活动和唤醒频率。
如果不给这个权限,可能会出现:
- Wi-Fi 锁屏后下载暂停
- 蜂窝网络后台下载失败
- 批量下载中途中断
权限入口在:安卓系统设置 → 应用 → Seal → 电池 → 无限制。
后台下载的常见失败排查
| 问题 | 排查 |
|---|---|
| 锁屏后下载暂停 | 检查电池优化豁免、Wi-Fi 是否开启"锁屏后保持连接" |
| 通知栏看不到 Seal 图标 | 检查安卓系统设置里通知权限是否开启、通知栏是否被你手动屏蔽 |
| 下载一段时间后任务消失 | 可能被厂商 ROM 杀掉——小米/华为/三星部分机型有更激进的后台限制 |
| 多个后台应用互相抢资源 | 先关掉其他占用大的应用,给 Seal 留资源 |
安卓版本差异
- Android 13+:有更严格的通知权限管理(POST_NOTIFICATIONS),首次打开 Seal 时会弹出权限请求
- Android 8-12:通知权限在系统设置→应用里手动开
- Android 5-7:Doze 模式较弱,Seal 在这些版本上不容易被系统杀掉