【问题标题】:ImageLoader.getInstance().getDiscCache().get(imageUrl) returns different pathsImageLoader.getInstance().getDiscCache().get(imageUrl) 返回不同的路径
【发布时间】:2013-05-12 15:15:21
【问题描述】:
  1. 调用缓存

    ImageLoader.getInstance().loadImage(cnt, imageUrl, new ImageLoadingListener()

  2. /mnt/sdcard/Android/data/[package]/cache/40d1dxbmdamufgcs742bjraew 已创建

  3. ImageLoader.getInstance().getDiscCache().get(imageUrl) - 返回/mnt/sdcard/Android/data/[package]/cache/40d1dxbmdamufgcs742bjraew -> 好的
  4. 重启设备

  5. ImageLoader.getInstance().getDiscCache().get(imageUrl) - 返回 /data/data/[package]/cache/40d1dxbmdamufgcs742bjraew -> KO(此文件夹已创建但它“为空”)

【问题讨论】:

  • 无法理解您的问题以及您想要做什么?使用 UIL?
  • downvoter,怎么了?
  • 缓存是缓存。设备重启时清除。它用于临时数据,例如可以在下一次应用启动期间更改的此类数据。在返回手机目录时,可能 SDCard 不可用或空间不足。
  • 没有 SD 卡缓存一切正常
  • 我的意思是它一定是改变了缓存目录,因为当你启动应用程序时SDCard不可用,它切换到手机的。

标签: android universal-image-loader


【解决方案1】:

感谢Doctoror Drive

https://github.com/nostra13/Android-Universal-Image-Loader/tree/master/library/src/com/nostra13/universalimageloader/core

/** * 返回应用程序缓存目录。缓存目录将在 SD 卡上创建 * ("/Android/data/[app_package_name]/cache") 如果卡已安装。 Else - Android 定义缓存目录 * 设备的文件系统。 * * @param context 应用程序上下文 * @return 缓存 {@link 文件目录} */

public static File getCacheDirectory(Context context) {
        File appCacheDir = null;
        if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
            appCacheDir = getExternalCacheDir(context);
        }
        if (appCacheDir == null) {
            appCacheDir = context.getCacheDir();
        }
        return appCacheDir;
    }

【讨论】:

  • 我在某些设备上遇到了同样的问题,感谢您指出这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
相关资源
最近更新 更多