• logo categorie
    RESOLU

    Ajouter un cache disque en plus de la mémoire cache existante


    Bonjour
    Comment ajouter un cache disque en plus de la mémoire cache existante sous Android?
    Android
    Cache disque
    Android
    utilisateur
    Julia
    Posté le : 12 Novembre à 11:35
    8 388 vues

  • 0
    Noah
    Posté le : 12 Novembre à 11:36
    Bonjour
    Voici un exemple pour ajouter un cache disque en plus de la mémoire cache existante sous Android:
    private DiskLruCache mDiskLruCache;
    private final Object mDiskCacheLock = new Object();
    private boolean mDiskCacheStarting = true;
    private static final int DISK_CACHE_SIZE = 1024 * 1024 * 10; // 10MB
    private static final String DISK_CACHE_SUBDIR = "thumbnails";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    ...
    // Initialize memory cache
    ...
    // Initialize disk cache on background thread
    File cacheDir = getDiskCacheDir(this, DISK_CACHE_SUBDIR);
    new InitDiskCacheTask().execute(cacheDir);
    ...
    }

    class InitDiskCacheTask extends AsyncTask<File, Void, Void> {
    @Override
    protected Void doInBackground(File... params) {
    synchronized (mDiskCacheLock) {
    File cacheDir = params[0];
    mDiskLruCache = DiskLruCache.open(cacheDir, DISK_CACHE_SIZE);
    mDiskCacheStarting = false; // Finished initialization
    mDiskCacheLock.notifyAll(); // Wake any waiting threads
    }
    return null;
    }
    }

    class BitmapWorkerTask extends AsyncTask<Integer, Void, Bitmap> {
    ...
    // Decode image in background.
    @Override
    protected Bitmap doInBackground(Integer... params) {
    final String imageKey = String.valueOf(params[0]);

    // Check disk cache in background thread
    Bitmap bitmap = getBitmapFromDiskCache(imageKey);

    if (bitmap == null) { // Not found in disk cache
    // Process as normal
    final Bitmap bitmap = decodeSampledBitmapFromResource(
    getResources(), params[0], 100, 100));
    }

    // Add final bitmap to caches
    addBitmapToCache(imageKey, bitmap);

    return bitmap;
    }
    ...
    }

    public void addBitmapToCache(String key, Bitmap bitmap) {
    // Add to memory cache as before
    if (getBitmapFromMemCache(key) == null) {
    mMemoryCache.put(key, bitmap);
    }

    // Also add to disk cache
    synchronized (mDiskCacheLock) {
    if (mDiskLruCache != null && mDiskLruCache.get(key) == null) {
    mDiskLruCache.put(key, bitmap);
    }
    }
    }

    public Bitmap getBitmapFromDiskCache(String key) {
    synchronized (mDiskCacheLock) {
    // Wait while disk cache is started from background thread
    while (mDiskCacheStarting) {
    try {
    mDiskCacheLock.wait();
    } catch (InterruptedException e) {}
    }
    if (mDiskLruCache != null) {
    return mDiskLruCache.get(key);
    }
    }
    return null;
    }

    // Creates a unique subdirectory of the designated app cache directory. Tries to use external
    // but if not mounted, falls back on internal storage.
    public static File getDiskCacheDir(Context context, String uniqueName) {
    // Check if media is mounted or storage is built-in, if so, try and use external cache dir
    // otherwise use internal cache dir
    final String cachePath =
    Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) ||
    !isExternalStorageRemovable() ? getExternalCacheDir(context).getPath() :
    context.getCacheDir().getPath();

    return new File(cachePath + File.separator + uniqueName);
    }
  • ⇒ Si vous êtes ici c'est que le sujet vous intéresse ^^
    Inscrivez-vous sur Oyant, apportez votre contribution sur ce sujet et gagnez de l'argent :

    Inscription
    Répondre
  • logo categorie
    RESOLU

    Sou, saoul et sous

    Bonjour
    Savez-vous la différence entre sou, saoul et sous?
    Merci d'avance.
    Apprentissage des langues
    Saoul
    Sous
    Sou
  • logo categorie
    RESOLU

    La différence entre lit, lis et l'y

    Bonjour
    Avez-vous une idée sur la différence entre lit, lis et l'y?
    Merci d'avance.
    Apprentissage des langues
    Lit
    Lis
    L'y
  • logo categorie
    RESOLU

    La différence entre Li et lie

    Bonjour
    Savez-vous la différence entre Li et lie, s'il vous plaît?
    Apprentissage des langues
    Li
    Lie
  • logo categorie
    RESOLU

    Exemple de mise en place d'un LruCache pour les bitmaps

    Bonjour
    Je voudrais un exemple de mise en place d'un LruCache pour les bitmaps sous Android?
    Android
    LruCache
    Bitmaps
    Android
  • logo categorie
    RESOLU

    Batte

    Bonjour
    Est-ce que batte peut avoir deux sens différents?
    Apprentissage des langues
    Batte
    Sens
  • logo categorie
    RESOLU

    La différence entre bâte et bath

    Bonjour
    Savez-vous la différence entre bâte et bath?
    Merci d'avance.
    Apprentissage des langues
    Bâte
    Bath
  • logo categorie
    RESOLU

    La différence entre boite et boîte

    Bonjour
    La différence entre boite et boîte, s’il vous plait ?
    Merci d'avance.
    Apprentissage des langues
    Boite
    Boîte
  • logo categorie
    RESOLU

    Gérer les accès concurrents sous Android

    Bonjour
    Comment gérer les accès concurrents sous Android?
    Android
    Android
  • logo categorie
    RESOLU

    La différence entre grâce et grasse

    Bonjour
    Avez-vous une idée sur la différence entre grâce et grasse?
    Merci d'avance.
    Apprentissage des langues
    Grâce
    Grasse
  • logo categorie
    RESOLU

    La différence entre heurt et heur

    Bonjour
    La différence entre heurt et heur, s’il vous plait ?
    Apprentissage des langues
    Heurt
    Heur
    Différence
  • logo categorie
    RESOLU

    Charger le bitmap en mode asynchrone

    Salut
    S'il vous plaît je voudrais charger le bitmap en mode asynchrone sous Android.
    Avez-vous une idée?
    Android
    Bitmap
    Asynchrone
    Android
  • logo categorie
    RESOLU

    Eure, heure?

    Salut
    Avez-vous une idée sur la différence entre Eure et heure?
    Merci d'avance.
    Apprentissage des langues
    Eure
    Heure
    Heurt
    Heur
  • logo categorie
    RESOLU

    Pi, pie et pis?

    Salut
    Avez-vous une idée sur la différence entre pi, pie et pis?
    Merci d'avance.
    Apprentissage des langues
    Pi
    Pie
    Pis
  • logo categorie
    RESOLU

    Comment voir si ImageView est toujours mis en bitmap?

    Salut
    j'aimerais savoir comment voir si ImageView est toujours mis en bitmap sous Android?
    Android
    ImageView
    Bitmap
    Android
  • logo categorie
    RESOLU

    La différence entre houx et ou

    Bonjour
    Savez-vous la différence entre houx et ou, s'il vous plaît?
    Apprentissage des langues
    Houx
    Ou
  • logo categorie
    RESOLU

    Hou et houe?

    Bonjour
    Avez-vous une idée sur la différence entre hou et houe?
    Merci d'avance.
    Apprentissage des langues
    Hou
    Houe
    Différence
  • logo categorie
    RESOLU

    Décoder l'image en background

    Bonjour
    Je voudrais savoir s'il vous plaît comment décoder une image en background sous Android?
    Android
    Image
    Background
    Android
  • logo categorie
    RESOLU

    Probléme formulaire affichage �

    Bonjour,
    Après sauvegarde sur ma base de donnée, les données s'affiche sur ma page php sous forme de �

    Je comprends pas pourquoi ?
    Bases de données
    PHP
    Webmasters - Développement web
    MySQL
    Langage PHP
    Outils de développement
    PHP & SGBD
    Scripts
    Général Conception Web
    php
    mysql
  • logo categorie
    RESOLU

    La différence entre vainc, vingt et vint

    Bonjour
    La différence entre vainc, vingt et vint s’il vous plaît?
    Apprentissage des langues
    Vainc
    Vingt
    Vint
  • logo categorie
    RESOLU

    La différence entre vin et vain

    Bonjour
    Avez-vous une idée sur la différence entre vin et vain, s'il vous plaît?
    Apprentissage des langues
    Vin
    Vain
  • Veuillez vous connecter pour profiter pleinement de toutes les fonctionnalités de Oyant.
    Connexion
    Inscription

    Poster une question

    AnimauxApplicationsArnaquesAutres langagesBases de donnéesBeauté et ModeC et C++Cartes de voeux, lettres, poèmes et discoursCMS (Système de gestion de contenu)CollectionCuisineCultureDémarches administrativesDivertissementDotnetDroitEmploiEmploi et études en informatiqueEnseignementEntrepriseEnvironnementEvénementsFinanceGénéral développementImmobilier, logement et urbanisme    JavaLanguesLogicielsMétiersNouvelles technologiesPHPPrestations socialesRéservé aux adultesSantéSportSystèmesTransportsVie pratiqueWebmasters - Développement web 3.103 Utlisateurs parcourent Oyant en ce moment