J'essaye de créer une démo simple pour la fonctionnalité ImageLoader pour le Android Volley Framework. Constructor est le suivant:Mise en œuvre non-bloquante du cache de fichiers (BitmapLruCache)?
public ImageLoader(RequestQueue queue, ImageCache imageCache)
Le problème est avec le ImageCache
. Ses états JavaDoc sont les suivants:
Interface d'adaptateur de cache simple. S'il est fourni à l'ImageLoader, le sera utilisé comme cache L1 avant d'être envoyé à Volley. Les implémentations ne doivent pas bloquer. L'implémentation avec un LruCache est recommandée.
- Qu'est-ce exactement les « ne doivent pas bloquer Implémentations » dans ce contexte signifie?
- Existe-t-il un exemple de cache de fichiers non bloquant (même non java mais "pur" java) que je peux utiliser pour apprendre à mon propre personnel comment convertir mon cache de fichiers existant pour qu'il ne soit pas bloquant?
Si aucune existe - quelles peuvent être les conséquences négatives de l'utilisation de mon implémentation existante qui est (juste la lecture du fichier):
public byte [] get (nom de fichier String) {
byte[] ret = null; if (filesCache.containsKey(filename)) { FileInfo fi = filesCache.get(filename); BufferedInputStream input; String path = cacheDir + "/" + fi.getStorageFilename(); try { File file = new File(path); if (file.exists()) { input = new BufferedInputStream(new FileInputStream(file)); ret = IOUtils.toByteArray(input); input.close(); } else { KhandroidLog.e("Cannot find file " + path); } } catch (FileNotFoundException e) { filesCache.remove(filename); KhandroidLog.e("Cannot find file: " + path); } catch (IOException e) { KhandroidLog.e(e.getMessage()); } } return ret;
}