我刚刚测试了片段的参数束的行为。它像saveInstanceState bundle一样持久!如果我将某些内容保存到片段参数中,则它可以存活下来,甚至可以杀死应用程序! 那么为什么saveInstanceState包在那里呢? o_O
P.S。 在活动意图的额外情况下,我在活动代码内添加了例如字符串,即使活动重新创建也无法幸免。仅在创建意图本身时生存。因此可以理解为什么我们在那里需要saveInstanceState。
答案 0 :(得分:0)
Fragment参数应在外部用于初始化片段。保存的实例状态应由片段本身在内部使用。还有生命周期的含义。因此,该框架将在适当的时候调用onSaveInstanceState(),但是如果您正在调用setArguments(),则您实际上不知道何时该调用它。除非您在onSaveInstanceState()期间调用它,否则只能使用保存的状态。如果使用参数存储状态数据,则有可能破坏原始的初始化数据。最后,在保存片段状态之后无法调用setArguments(),因此这种方法在何时才能起作用受到限制。