ImageLoader 加载图片错乱

先说一下我遇到的问题,在使用 Imageloader 的过程当中我把缓存文件放到了SD卡的指定文件夹上面,每一次加载图片都会缓存一个路径无论是本地还是网络的Url, 那就要对应一个路径做一个类似的 “索引” 来标识, 由于是存储到了sd卡目录,所以我卸载了应用的时候相应的缓存目录并没有被删除, 导致再次加载图片的时候出现了索引重复,出现了出现的图片并不是想要的正确的图片

  • 解决方案
    问题已经定位了解决起来也就比较的简单了, 这里 强力推荐 每日看google的官方文档,遇到问题先查文档API,看下对应源码等等,做应用开发必备!当时我就在想能不能在我卸载应用的时候也将缓存文件夹删除呢,这样就不会出现类似索引重复的问题啦, 答案当然是有的:

    1 getFilesDir()
    此方法只有自己的应用可以访问到,存储在手机空间上, 在手机设置应用程序的清除数据点击清除了才会将清除这个目录, 另外值得注意的是因为可以将应用转移到SD卡如果应用设置了相关属性的话, 所以使用这个方法建立文件夹的时候最好使用相对路径,不要使用绝对路径

    2 getExternalFilesDir

    使用这个方法会在手机存储设备上建立一个属于自己应用的文件夹, 你会在存储设备的 /Android/包名/ 下面找到它,这里你会发现很多应用的缓存目录在这里,这个和getFilesDir() 是有一些区别的: 一个是手机外存储设备可能会被移除,我们可以用getExternalStorageState(File)方法来判断是否可用。 还有一个就是安全性差一些, 因为只要有 WRITE_EXTERNAL_STORAGE 权限的APP都可以访问到, 但是还是建议使用此方法, 就是写缓存文件嘛,你想访问你就访问去呗。

另外getExternalFilesDir方法有一些参数,详情可以到官网查看
http://developer.android.com/intl/zh-cn/reference/android/os/Environment.html#DIRECTORY_RINGTONES

举个例子, 如果设置成DIRECTORY_RINGTONES, 那就是铃声, 不会是音乐, 闹钟啥的。

很开心你看到了博客结尾!
关注我的微信公众号,第一时间获得博客的更新提醒,更有很多其它的技术信息分享给大家
扫一扫下方二维码或搜索微信号yue-blog即可关注:
ImageLoader 加载图片错乱_第1张图片

你可能感兴趣的:(技术文章)