1

我在活动中有一个片段,我在其中动态创建视图并在用户从我创建的图库中选择图像后将图像分配给图像视图。但是,如果用户点击后退按钮然后重新打开片段,则视图已全部重置并且没有图像。我尝试了几种不同的方法来处理保存的状态,但是由于我可能处理多达 20 张图像,我不确定如何处理我的片段的状态,因为我尝试过的方法似乎都不起作用。现在我正在尝试使用 Fragment.SavedState 并使用它重新实例化,但我无法弄清楚如何实际使用 savedstate。任何有关此事的帮助或建议将不胜感激。

4

1 回答 1

3

最好的办法是使用 LRU 缓存,为了获得最佳性能,您需要结合基于内存的缓存和基于磁盘的缓存。Jake Wharton 在这里有一个出色的实现。

一旦片段/活动不再可见,它就会被垃圾收集,所以你需要能够重建整个视图。我建议Don't Keep Activities在开发人员选项中打开进行测试。

Android 开发者网站上的BitmapFun中有一个很好的从网络加载图像的示例。

于 2012-11-27T01:22:08.707 回答