Кэшировать двоичный файл в LruCache - PullRequest
0 голосов
/ 28 июня 2019

Можем ли мы кэшировать динамический контент с помощью 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)  
   }
...