1
当我的应用程序启动时(主要是第一次启动应用程序时),我有超过10张图像从服务器动态获取。SharedPreference或Map <String,SoftReference <Bitmap>>
这样做的最佳做法是什么?为什么?
保持一个
Map<String, SoftReference<Bitmap>>
在那里我将有一个HashMap其中的元素SoftReference的。使用
String encodedImage = Base64.encodeToString(imgData, Base64.DEFAULT);
SharedPreferences shre = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit=shre.edit();
edit.putString("image_data",encodedImage);
edit.commit();
有人能说明各个优势保存byte[]
?
谢谢你的回复。 检查缓存机制。 但是你能说,我们什么时候可以使用选项2? 它在任何情况下都会有什么优势? – JnJ11
我不这么认为。你看,你的代码有可能会导致OutOFMemoryError。特别是如果'imgData'会很大。想象一下你的10张图片是高质量的,如果它运行在低端设备上,你的应用会崩溃。 –
恕我直言'SharedPreference'应该用来存储一些快速访问的数据。计数器,字符串等 –