NetworkStatusMonitor 自动感知脱机、首页远程刷新暂停、本地文件仍可访问
脱机检测机制
NetworkStatusMonitor 基于系统默认网络承载自动识别脱机状态:
- 连接 Wi-Fi / 移动网络 → 在线
- 没有任何网络 → 脱机
- 网络切换时实时触发状态变化
不需要手动开启或关闭脱机模式——由系统网络状态自动决定。
脱机时会禁用什么
| 功能 | 脱机时行为 |
|---|---|
| 在线探索页搜索 | 停用,提示网络不可用 |
| 首页远程刷新 | 暂停,不触发在线歌单/推荐拉取 |
| 在线播放 | 暂停,已播放位置保留 |
| 网易云 / B站 / YouTube Music 歌单详情 | 不刷新网络,优先展示本地缓存 |
脱机时仍可使用什么
- 本地音频播放(全部可用)
- 已下载音频播放(全部可用)
- 播放缓存命中的音频(缓存命中=不需要联网)
- 本地歌单浏览
- 最近播放
- 播放统计查看
- 歌词(已缓存的)
封面图片的脱机降级
封面图片加载使用 offlineCachedImageRequest:
- 在线时:优先尝试远程加载,失败再走本地缓存
- 脱机时:阻断远程请求,直接走本地缓存
这样脱机时封面图片不会因为远程请求失败而显示空白,而是显示之前缓存过的封面。
首页 / 探索 / 播放页 / 歌词页 / 歌单 / 下载列表都接收 offlineMode 状态
所有主要页面组件都会订阅 NetworkStatusMonitor 的脱机状态变化,自动切换 UI 和行为——不会出现某个页面忘了处理脱机的情况。
网络恢复后的行为
- 在线探索和首页自动恢复远程刷新
- 图片加载恢复远程请求优先
- 播放统计恢复延迟批量写入(之前是暂停的)
- 不会自动触发下载队列恢复——需要用户手动点击继续下载