V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
nnegier
V2EX  ›  Android

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

  •  
  •   nnegier · Mar 13, 2025 · 3695 views
    This topic created in 411 days ago, the information mentioned may be changed or developed.

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

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

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

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

    你确定吗?我试了一下,没复现你说的问题。重建时,Intent 内容依然是保留第一次启动的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   6135 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 02:22 · PVG 10:22 · LAX 19:22 · JFK 22:22
    ♥ Do have faith in what you're doing.