同步稳定性与冲突处理——多设备同看一部番怎么办
冲突场景
最典型的冲突场景:
你同时在手机和平板上追《鬼灭之刃》,某一天:
- 手机看到第 5 集 23 分(Wi-Fi 下)
- 平板看到第 5 集 15 分(同一天,但平板上你又往前看了)
- 网络恢复了,两端都要同步
- 到底以哪个进度为准?
默认冲突策略
Baka 默认采用 "最后写入优先"(Last Write Wins) 策略:
时间线:
T0: 手机看到 10 分,平板看到 10 分,同步一致
T1: 手机继续看到 15 分 → 上报(但网络差,云端没收到)
T2: 平板看到 20 分 → 上报(成功,云端记录 20 分)
T3: 手机网络恢复,上报 15 分 → 云端比较时间戳
→ 平板的 20 分时间更晚 → 保留 20 分
→ 手机同步到 20 分
这个策略的含义:同一集的观看进度,以最后一次成功上报的时间为准。不管是哪台设备,谁最后操作并成功同步,谁的数据覆盖。
可配置的冲突策略
在同步设置中可以切换策略:
| 策略 | 行为 | 适用场景 |
|---|---|---|
| 最后写入优先 | 谁最后成功同步,谁覆盖 | 默认推荐,简单直接 |
| 最大进度优先 | 取两台设备中进度靠后的那个 | 不容易丢失观看进度 |
| 设备优先级 | 指定某台设备为"主设备",其他设备服从 | 主设备进度为主 |
| 手动解决 | 冲突时弹窗让你手动选 | 对数据准确性要求极高 |
同步延迟与不一致
即使不冲突,多端数据也可能短暂不一致:
正常同步延迟
| 场景 | 延迟范围 | 原因 |
|---|---|---|
| 同网络、自动同步开启 | 1~10 秒 | 正常网络延迟 |
| 移动数据网络 | 10~30 秒 | 运营商网络波动 |
| 一端离线后恢复 | 30~120 秒 | 本地缓存批量上报 |
不一致的自查
如果你觉得"手机上显示看到 23:15,平板上还是 15:30,已经好几分钟了":
- 确认两台设备都有网络
- 手动触发一次立即同步(设置 → 同步 → 立即同步)
- 检查两台设备是否都登录了同一个 Baka 账号
- 等 30 秒后重新打开应用刷新
网络异常的处理
完全断网
- Baka 正常记录所有变更到本地
- 下次联网时批量补报
- 补报时会按时间戳顺序执行
网络抖动(时断时续)
- 同步请求会重试(最多 3 次,间隔递增)
- 失败后进入"待同步队列"
- 网络稳定后自动续传
移动数据切换
- 部分用户在 Wi-Fi 和移动数据间切换频繁
- 可以设置"仅 Wi-Fi 同步"避免移动数据下的同步开销
- 切回 Wi-Fi 后延迟批量同步
数据一致性验证
部分版本支持"一致性体检"功能:
- 打开设置 → 同步 → 数据检查
- 对比本地与云端数据
- 报告不一致的条目(如某集进度不同步)
- 提供一键修复(将两边数据对齐)
数据丢失的恢复
极端情况下(设备损坏、云端数据问题)的数据恢复:
| 场景 | 恢复方法 |
|---|---|
| 换了新设备 | 登录同一账号 → 等待同步拉取 |
| 手机丢了但平板还在 | 同步机制仍在运行,数据安全 |
| 本地数据被清空 | 从云端拉取完整数据 |
| 云端数据有问题 | 如果之前导出过备份,用备份恢复 |
| 都没了 | 无可恢复,只能重新追番(但番剧源的观看历史是独立的) |
隐私与安全
同步数据的安全性:
- 传输加密:HTTPS/TLS 全程加密
- 存储加密:服务器端数据加密存储(取决于官方实现)
- 账号保护:建议开启两步验证(如果版本支持)
- 注销账号:注销后云端数据会被永久删除