我在一个 Activity 中有一个 fragment ,我在其中动态创建 View ,并在用户从我创建的图库中选择图像后将图像分配给 ImageView 。但是,如果用户点击后退按钮然后重新打开 fragment , View 将全部重置并且没有图像。我尝试了几种不同的方法来处理保存的状态,但由于我可能处理多达 20 张图像,所以我不确定如何处理我的 fragment 的状态,因为我尝试过的方法似乎都不起作用。现在我正在尝试使用 Fragment.SavedState 并使用它重新实例化,但我无法弄清楚如何实际使用 savedstate。对此事的任何帮助或建议将不胜感激。
最佳答案
最好的办法是使用 LRU 缓存,为了获得最佳性能,您需要结合基于内存的缓存和基于磁盘的缓存。 Jake Wharton 有出色的实现 here .
一旦 Fragment/Activity 不再可见,它就会被垃圾回收,因此您需要能够重建整个 View 。我建议在开发人员选项中打开 Don't Keep Activities
进行测试。
在BitmapFun 中有一个从网络加载图像的优秀示例。在 Android 开发者网站上。
关于android - 在处理大量图像和 View 时处理保存 fragment 状态的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13575885/