cacheFile:首次下没有返回下载内容;正确处理saveTime=0的情况

This commit is contained in:
Xwite
2022-01-07 09:35:39 +08:00
parent 099d9a81bb
commit 586b157328
2 changed files with 18 additions and 8 deletions
@@ -28,6 +28,13 @@ object CacheManager {
} }
} }
fun putString2File(key: String, value: String, saveTime: Int = 0) {
if (saveTime == 0) {
//不设置过期时间
ACache.get(appCtx).put(key, value)
} else ACache.get(appCtx).put(key, value, saveTime)
}
fun get(key: String): String? { fun get(key: String): String? {
return appDb.cacheDao.get(key, System.currentTimeMillis()) return appDb.cacheDao.get(key, System.currentTimeMillis())
} }
@@ -52,6 +59,10 @@ object CacheManager {
return ACache.get(appCtx).getAsBinary(key) return ACache.get(appCtx).getAsBinary(key)
} }
fun getString(key: String): String? {
return ACache.get(appCtx).getAsString(key)
}
fun getQueryTTF(key: String): QueryTTF? { fun getQueryTTF(key: String): QueryTTF? {
val cache = queryTTFMap[key] ?: return null val cache = queryTTFMap[key] ?: return null
if (cache.first == 0L || cache.first > System.currentTimeMillis()) { if (cache.first == 0L || cache.first > System.currentTimeMillis()) {
@@ -138,15 +138,14 @@ interface JsExtensions {
* @param saveTime 缓存时间,单位:秒 * @param saveTime 缓存时间,单位:秒
* @return 返回缓存后的文件内容 * @return 返回缓存后的文件内容
*/ */
fun cacheFile(url: String, saveTime: Int = 0): String? { fun cacheFile(urlStr: String, saveTime: Int = 0): String? {
val key = md5Encode16(url) val key = md5Encode16(urlStr)
val cache = ACache.get(appCtx).getAsString(key) val cache = CacheManager.getString(key)
if(cache.isNullOrBlank()) { if(cache.isNullOrBlank()) {
log("首次下载${url}...") log("首次下载 ${urlStr}")
val value = ajax(url) ?: "" val value = ajax(urlStr) ?: return null
if (saveTime == 0) { CacheManager.putString2File(key, value, saveTime)
ACache.get(appCtx).put(key, value) return value
} else ACache.get(appCtx).put(key, value, saveTime)
} }
return cache return cache
} }