V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nnegier
V2EX  ›  Android

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

  •  
  •   nnegier · 21 小时 29 分钟前 · 643 次点击

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

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

    2 条回复    2025-03-13 00:45:50 +08:00
    w568w
        1
    w568w  
       20 小时 54 分钟前
    这个问题的答案就写在配置变更的介绍文档里啊: 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
        2
    w568w  
       20 小时 46 分钟前
    @w568w 写完发现把问题看错了,补救一下:

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

    你确定吗?我试了一下,没复现你说的问题。重建时,Intent 内容依然是保留第一次启动的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3125 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 13:32 · PVG 21:32 · LAX 06:32 · JFK 09:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.