2 a63850553 a63850553 于 2015.06.24 21:55 提问

Android:如何实现详情页的状态保存? 5C

场景是这样的:有一个列表页ActivityA,点击列表项会跳转到详情页ActivityB,这个ActivityB的内容是需要去服务端请求的,数据量大,而且结构复杂,即请求需要花费较多时间,数据解析和界面绘制也需要花费较多时间。现在想做一个效果是,点击列表项的某一项跳入ActivityB之后,假如点击返回,希望不销毁这个ActvityB,再在ActivityA中点击同一列表项时,直接打开原来的ActivityB,不需要请求和绘制。
这个场景可参考百度贴吧的贴吧和帖子功能,点击某个帖子返回后,再点击同一个帖子,是可以直接打开并且停留在上一次读取的位置的。
当然,上述场景,假如在ActivityA和ActivityB都是唯一的时候会很简单,只需要将两者都设置为singleInstance,ActivityB的关闭操作重写为startActivity ActivityA就行了,然后在ActivityB中通过item项的ID决定是否需要重新请求绘制,但问题是ActivityA和ActivityB是嵌套关系,即在ActivityB中点击某个按钮可能再打开一个不同内容的ActivityA,这样singleInstance就无法实现了。
另外一种想法是将ActivityB做成View的形式,放在ActivityA内,这样似乎可行,但总觉得不是最佳方案。

4个回答

sbsujjbcy
sbsujjbcy   2015.06.24 22:11

为什么要不摧毁Activity呢,用缓存实现就可以了

shuyou612
shuyou612   2015.06.24 22:51

把详情页的数据保存不就行了,有个onSaveState什么方法

u010668114
u010668114   2015.06.25 08:50

用fragment吧,点击返回隐藏它就是了。

lht80s
lht80s 同意,fragment是你最佳的选择
2 年多之前 回复
lifengli123
lifengli123 是为正解
2 年多之前 回复
vdsvfdsbfdgf
vdsvfdsbfdgf   2015.06.26 16:44

缓存下来下次不就不用重新获取了

Csdn user default icon
上传中...
上传图片
插入图片