目前,我正在使用WeakHashMap存储我的BitMap并将其链接到我的密钥,但我注意到它开始使用大量的RAM。有没有更好的解决方案来缓存BitMaps直到我需要它们?应用程序关闭后我不太可能需要图像,因此不需要长期解决方案。
谢谢!
答案 0 :(得分:2)
我需要将它们保存在内存中,以防用户滑回到 以前的视图可以节省带宽并使ViewPager更具响应性
FragmentStateAdapter
就是为了这个。同时使用setOffscreenPageLimit()
和setRetainInstance()
。
在运行时内存中存储Bitmap
个对象不是一个好主意,迟早会导致OutOfMemoryError
被抛出。
答案 1 :(得分:0)
答案 2 :(得分:0)
应用程序关闭后我不太可能需要图像,因此不需要长期解决方案。
将图像存储在缓存中不会有问题,因为即使关闭应用程序或从设置中清除应用程序数据,系统也不会从缓存中清除图像。 对于图像下载,您可以使用以下图像库: 图像加载器: https://github.com/nostra13/Android-Universal-Image-Loader 它为您提供了将图像保存在缓存中的选项。
您也可以使用排球库。但在此,您必须实现自己的缓存存储代码。 http://developer.android.com/training/volley/index.html
否则,您还可以为缓存实现自己的代码,您可以在其中使用内存磁盘进行缓存。 http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html#disk-cache