Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo usar CacheManager de Android?

Actualmente estoy desarrollando una aplicación de Android que recolecta imágenes usando solicitudes http. Sería bastante oleaje si pudiera almacenar en caché esas imágenes para mejorar al funcionamiento y al uso del ancho de banda.

Me encontré con la clase CacheManager en la referencia de Android, pero realmente no sé cómo usarlo, o lo que realmente hace.

  • Eliminación de cadenas no utilizadas durante la optimización de ProGuard
  • Sqlite3 permission denied android
  • En Android, ¿cómo puedo suavizar el fondo de un color a otro? (Cómo utilizar subprocesos)
  • Acción de programación de Android
  • BitmapFactory.Options.inBitmap causa desgarro al cambiar mapa de imagen de ImageView a menudo
  • No se puede crear ActionBarActivity desde Robolectric 2 unidad de prueba
  • Ya he explorado este ejemplo, pero necesito ayuda para entenderlo:

    /core/java/android/webkit/gears/ApacheHttpRequestAndroid.java

    Asimismo, la referencia establece:

    "Las solicitudes de red se proporcionan a este componente y si no pueden ser resueltas por el caché, los encabezados HTTP se adjuntan, según corresponda, a la solicitud de revalidación de contenido".

    No estoy seguro de lo que esto significa o cómo funcionaría para mí, ya que CacheManager getCacheFile acepta sólo una URL de cadena y un mapa que contiene los encabezados. No estoy seguro de lo que el anexo mencionado significa.

    Una explicación o un simple ejemplo de código realmente haría mi día. ¡Gracias!

    Actualizar

    Esto es lo que tengo ahora mismo. Estoy claramente haciendo mal, simplemente no sé dónde.

     Public static Bitmap getRemoteImage (String imageUrl) {
             URL aURL = null;
             URLConnection conn = nulo;
             Mapa de bits bmp = nulo;
    
             CacheResult cache_result = CacheManager.getCacheFile (imageUrl, nuevo HashMap ());
    
             If (cache_result == null) {
                 tratar {
                     AURL = nueva URL (imageUrl);
                     Conn = aURL.openConnection ();
                     Conn.connect ();
                     InputStream es = conn.getInputStream ();
    
                     Cache_result = new CacheManager.CacheResult ();
                     CopyStream (es, cache_result.getOutputStream ());
                     CacheManager.saveCacheFile (imageUrl, cache_result);
                 } Catch (Excepción e) {
                     Return null;
                 }
             }
    
             Bmp = BitmapFactory.decodeStream (cache_result.getInputStream ());
             Return bmp;
         }
    

  • ERROR: La aplicación requiere la versión API 14. La versión del API del dispositivo es 13 (Android 3.2.1)
  • ¿Cómo restablecer la vista al estado original después de usar animadores para animar sus propiedades?
  • ¿Cómo obtener resultados de un IntentService en una actividad?
  • Cómo explorar el estilo en android
  • ¿Cómo realizar un seguimiento del uso de la aplicación en Android? ¿Cómo detectar cuándo se inicia una actividad?
  • El paquete com.google.android.maps no existe (IntelliJ)
  • 2 Solutions collect form web for “¿Cómo usar CacheManager de Android?”

    No creo que el CacheManger se pueda utilizar fuera de un WebView como se indica en este informe de fallo http://code.google.com/p/android/issues/detail?id=7222

    Me encontré con este problema hace un tiempo también. El gestor de caché es sólo para la webview y no es realmente útil fuera de eso. Para mi aplicación que necesitaba para almacenar en caché respuestas xml y las imágenes por lo que terminé escribiendo mi propio gestor de caché para lograr eso. Nada demasiado terrible, pero ciertamente no es tan fácil como usar una incorporada.

    Si tiene alguna pregunta sobre los detalles, agregue un comentario a mi mensaje, lo reviso con frecuencia.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.