Repository navigation
柠檬TV v1.0.9 - 缓存机制修复版
柠檬TV v1.0.9 - 缓存机制修复版
📦 下载信息
- 文件名:
LemonTV-v1.0.9-release.apk - 文件大小: 5.15 MB
- 版本号: 1.0.9
- 发布日期: 2026-02-01
🔥 重大修复
✅ 彻底修复缓存机制问题
修复的核心问题:
播放源过时后,服务器端更新链接,但 APP 无论怎么刷新源或清除缓存,都提示播放错误
🔧 技术改进
1. 缓存过期真正删除文件 ⭐⭐⭐
修复前:
- 缓存过期后只设置
data = null,但不删除缓存文件 - 导致文件的
lastModified时间戳不更新 - 下次判断仍然认为未过期
修复后:
if (isExpired(cacheFile.lastModified(), data)) {
log.i("缓存已过期,删除缓存文件")
clearCache() // 真正删除文件 ✅
data = null
}2. "刷新源"功能强制刷新 ⭐⭐⭐
修复前:
- 即使点击"刷新源",也受
cacheTime限制 - 如果距离上次下载不到 5 分钟,不会重新下载
修复后:
- 新增
forceRefresh参数 - "刷新源"按钮调用
forceRefresh = true - 强制删除缓存并重新下载,无视缓存时间
3. 改进日志输出
新增详细日志便于排查问题:
缓存已过期,删除缓存文件: xxx缓存文件已删除: xxx重新获取数据: xxx缓存数据已保存: xxx, 大小: xxx 字节强制刷新直播源:xxx
📝 修改的文件
核心文件修复
-
FileCacheRepository.kt - 缓存基础类
getOrRefresh()- 缓存过期时真正删除文件forceRefresh()- 新增强制刷新方法clearCache()- 增强日志输出
-
IptvRepository.kt - 直播源仓库
getIptvGroupList()- 新增forceRefresh参数
-
MainViewModel.kt - 主界面逻辑
refreshCurrentSource()- 调用forceRefresh = true- 添加重试机制和错误提示
✅ 解决的问题
问题 1:缓存过期不删除文件
现象:刷新源后仍然使用旧数据
根本原因:缓存文件没有被真正删除
现在的表现:
- ✅ 点击"刷新源"立即删除缓存文件
- ✅ 强制重新下载最新 M3U 文件
- ✅ 显示明确的提示:"直播源刷新成功"
问题 2:刷新源功能受时间限制
现象:频繁刷新无效
根本原因:受 cacheTime(5分钟)限制
现在的表现:
- ✅ 使用
forceRefresh参数 - ✅ 无视缓存时间,强制刷新
- ✅ 文件时间戳正确更新
🧪 测试验证
✅ 测试 1:清除缓存功能
操作:设置 → 清除缓存
结果:
- ✅ 缓存目录完全删除
- ✅ 日志显示"删除缓存文件"
- ✅ 重启后自动重新下载
✅ 测试 2:刷新源功能
操作:菜单键 → 刷新源
结果:
- ✅ 文件时间戳从 12:01:53 更新到 12:09:36
- ✅ 日志显示"强制刷新直播源"
- ✅ 日志显示"缓存文件已删除"
- ✅ 显示"直播源刷新成功"提示
✅ 测试 3:缓存过期检测
触发条件:文件不存在或超过缓存时间
结果:
- ✅ 检测缓存是否过期
- ✅ 删除缓存文件
- ✅ 重新下载数据
- ✅ 保存新缓存
📱 使用说明
刷新直播源
- 按遥控器菜单键打开快速面板
- 选择"刷新源"按钮
- 等待提示"直播源刷新成功"
清除缓存
- 进入设置界面
- 找到"清除缓存"选项
- 点击清除
- 返回主界面会自动重新加载
🎯 版本对比
| 功能 | v1.0.8 及之前 | v1.0.9 |
|---|---|---|
| 缓存过期删除 | ❌ 只设置 null | ✅ 真正删除文件 |
| 刷新源功能 | ❌ 受时间限制 | ✅ 强制刷新 |
| 日志输出 | ✅ 详细完整 | |
| 文件时间戳 | ❌ 不更新 | ✅ 正确更新 |
🔄 继承的功能
v1.0.8 的功能(保留)
- ✅ 每个频道独立的 User-Agent 支持
- ✅ HTTP Referer 完整支持
- ✅ M3U 解析增强
v1.0.7 及之前的功能(保留)
- ✅ 更新按钮主题色统一
- ✅ Toast 提示框位置修复
- ✅ 电视盒子更新安装修复
- ✅ 智能直播源管理
- ✅ EPG 多级降级加载
- ✅ 一键刷新直播源
- ✅ 多线路切换
- ✅ 经典选台模式
📋 技术信息
包信息
- 包名:
com.lemontv.lite - 版本号: 1.0.9
- 最低 Android 版本: 5.0 (API 21)
- 支持架构: armeabi-v7a, arm64-v8a, x86_64
默认配置
- 默认直播源:
https://gh-proxy.org/https://raw.githubusercontent.com/jia070310/lemonTV/refs/heads/main/iptv-fe.m3u - 默认 EPG:
http://epg.51zmt.top:8000/e.xml.gz - HTTP 服务端口: 10481
- 直播源缓存时间: 24 小时
- EPG 刷新时间: 每天凌晨 2:00
🐛 已知问题
无已知问题。
📞 反馈渠道
- GitHub Issues: https://github.com/jia070310/lemonTV/issues
- 项目主页: https://github.com/jia070310/lemonTV
💡 升级建议
强烈建议升级!
如果你遇到以下情况,请立即升级到 v1.0.9:
- ✅ 服务器更新直播源后,APP 仍然显示旧内容
- ✅ 点击"刷新源"无效
- ✅ 清除缓存后仍然播放失败
- ✅ 提示播放错误但源地址是正确的
v1.0.9 - 彻底解决缓存问题,让刷新源真正生效! 🎉