android - 在处理大量图像和 View 时处理保存 fragment 状态的最佳方法

标签 android android-fragments

我在一个 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/

相关文章:

Android芯片膨胀导致 "Invalid ID 0x00000000."

java - Android:插入 fragment 时出错

Android:FragmentManager 无法替换 FrameLayout 时出现问题

使用选项卡时,android fragment 会自行触发

android - 添加 View 使 fragment 内的 ListView 刷新

android - Robolectric:actionBar.hide() 返回 Null

java - BOX2D - 与 Monster 的正确碰撞

android - 如何通过在android中使用phonegap api将.db文件从 Assets 文件夹复制到数据库文件夹来创建数据库

android - 如何正确地将 ResultReceiver 子类发送到服务?

android - 具有协调器布局的 ViewPager