LruCache возвращает ноль

У меня есть следующий код для кэширования растровых изображений, когда я пытаюсь получить их, используя их ключ. Они всегда возвращают ноль. Пожалуйста, помогите мне. Благодарю вас

 final int memClass = ((ActivityManager) mcontext.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
    final int cacheSize =  1024 *  1024 *memClass ;
    Toast.makeText(mcontext,"Max Cache "+cacheSize,Toast.LENGTH_LONG).show();
    mMemoryCache = new LruCache<String, Bitmap>(cacheSize) {
        @Override
        protected int sizeOf(String key, Bitmap bitmap) {
            // The cache size will be measured in kilobytes rather than
            // number of items.
            return bitmap.getByteCount() / 1024;
        }
    };

Функции для получения и установки кеша

 public void addBitmapToMemoryCache(String key, Bitmap bitmap) {
    if (getBitmapFromMemCache(key) == null) {
        Toast.makeText(mcontext,"CEO "+key+" - "+bitmap,Toast.LENGTH_LONG).show();
        mMemoryCache.put(key, bitmap);
    }
    else
    {
        Toast.makeText(mcontext,"NULL",Toast.LENGTH_LONG).show();
    }
}

public Bitmap getBitmapFromMemCache(String key) {
    return mMemoryCache.get(key);
}

-----------ОБНОВИТЬ-------------------------------------- --- Ну, после некоторой отладки выяснилось, что она вставляет значение, но я не могу получить к нему доступ после выхода из приложения. Когда я пытаюсь перезапустить приложение, кеш теряется. Пожалуйста, кто-нибудь может мне помочь, как сохранить это значение. Благодарю вас

1 ответ

Возможно, я ошибаюсь, но из моего недостаточного знания кеш сделан для сохранения некоторых данных в вашей оперативной памяти для снятия заряда с процессора. Кэш накапливается в течение срока службы приложения (загружайте одни и те же фотографии несколько раз и т. Д.). Это нормальное поведение, чтобы очистить кеш после того, как приложение было закрыто

Другие вопросы по тегам