Можем ли мы кэшировать динамический контент с помощью LruCache
? Контент может быть любым в двоичном формате, например JSON, Bitmap и т. Д. Я пытался использовать InputStream
, но он не работает.
private val mMemoryCache: LruCache<String, InputStream>
init {
// Get memory class of this device
val memClass = (mContext.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager).memoryClass
// Use 1/8th of the available memory for this memory cache
mCacheSize = 1024 * 1024 * memClass / 8
mMemoryCache = LruCache<String, InputStream>(mCacheSize)
}
В магазине:
fun storeToMemory(inputStream: InputStream, cacheKey: String) {
mMemoryCache.put(cacheKey, inputStream)
}
Для извлечения:
fun queryCache(cacheKey: String?): InputStream {
return mMemoryCache.get(cacheKey)
}