ExoPlayer的SimpleCache实例设置为单例模式是否安全?
ExoPlayer SimpleCache 单例使用问题解答
1. SimpleCache 设置为单例是否安全?
完全安全,这也是 ExoPlayer 官方推荐的标准用法。
同一进程下,禁止同时存在多个指向同一缓存目录的 SimpleCache 实例,多实例会触发缓存目录锁冲突,导致索引异常、缓存数据损坏等不可预期的问题。单例模式刚好规避了这个风险,只要你确保单例 SimpleCache 全程绑定唯一固定的缓存目录,就不存在安全问题。
2. 是否需要退出播放器时释放缓存实例,下次打开再重建?
不需要,频繁销毁重建 SimpleCache 属于多余操作,还会带来不必要的性能损耗:
- 每次初始化
SimpleCache都需要全量扫描本地缓存目录重建索引,缓存文件越多,这个过程耗时越长,反复重建会明显拉长播放器首次加载的耗时 SimpleCache是全局缓存管理类,和单一次播放的生命周期没有绑定关系。退出播放器页面时,你只需要释放当前播放任务绑定的资源(比如ExoPlayer实例、单次播放用到的CacheDataSource实例)即可,不需要动到全局缓存实例
只有当你需要主动清空全部缓存、或者调整缓存目录路径时,才需要调用 SimpleCache.release() 销毁旧实例,再按需创建新的实例
内容的提问来源于stack exchange,提问作者Amin Mousavi
相关产品推荐
相关产品推荐

