Android 系统重建 Activity 时为什么不重建 Intent?

212 天前
 nnegier

因为有些数据是用 Intent 传递的,但是如果因为一些原因如 configChanges 覆盖不到的一些情况导致 Activity 重建了,但是 Intent 又没有重建,这会报一些空指针异常!

当然这个问题很好解决,但是我实在想不通 Android 这里的设计为什么不一并重建一下 Intent 复原其内容。

2587 次点击
所在节点    Android
2 条回复
w568w
212 天前
这个问题的答案就写在配置变更的介绍文档里啊: https://developer.android.com/guide/topics/resources/runtime-changes?hl=zh-cn

划重点:

> 您可以采用三种主要方法在重新创建 Activity 的过程中保留相关状态。采用哪种方法取决于您要保留的状态类型:

> - 本地持久性存储
> - 保留对象(如 ViewModel 实例)
> - SavedInstanceState

最后一种就是你要找的。具体文档示例在:《保存和恢复瞬时界面状态》 https://developer.android.com/guide/components/activities/activity-lifecycle?hl=zh-cn#saras
w568w
212 天前
@w568w 写完发现把问题看错了,补救一下:

> 为什么不一并重建一下 Intent 复原其内容

你确定吗?我试了一下,没复现你说的问题。重建时,Intent 内容依然是保留第一次启动的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1117984

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX