キーを使用してビットマップを取得しようとすると、ビットマップをキャッシュする次のコードがあります。それらは常に null を返します。私を助けてください 。ありがとうございました
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);
}
- - - - - -アップデート - - - - - - - - - - - - - - - - - - - --- デバッグの結果、値が挿入されていることがわかりましたが、アプリを終了した後はアクセスできません。アプリを再起動しようとすると、キャッシュが失われます。その値を保持する方法を教えてください。ありがとうございました