什么时候操作系统会完全忘记有关 Activity 的状态以及与 Activity 相关的所有信息(有关 Activity 的任何记录)?
换句话说,它什么时候会让 Bundle 成为一个新实例?
我找到了下面的解释,但它没有解释这个“杀戮捆绑”点?
调用以在被杀死之前从活动中检索每个实例的状态,以便可以在 onCreate(android.os.Bundle) 或 onRestoreInstanceState(android.os.Bundle) 中恢复状态(此方法填充的 android.os.Bundle 将传递给两者)。这个方法在一个活动可能被杀死之前被调用,这样当它在未来某个时间回来时它可以恢复它的状态。例如,如果活动 B 在活动 A 之前启动,并且在某个时刻活动 A 被杀死以回收资源,活动 A 将有机会通过此方法保存其用户界面的当前状态,以便当用户返回时对于activity A,可以通过onCreate(android.os.Bundle) 或onRestoreInstanceState(android.os.Bundle) 恢复用户界面的状态。不要将此方法与活动生命周期回调混淆,例如 onPause(),它总是在活动被放置在后台或销毁的途中调用,或者在销毁之前调用的 onStop()。当用户从活动 B 导航回活动 A 时调用 onPause() 和 onStop() 而不是此方法的一个示例:不需要在 B 上调用 onSaveInstanceState(android.os.Bundle),因为该特定实例永远不会被恢复,所以系统避免调用它。调用 onPause() 而不是 onSaveInstanceState(android.os.Bundle) 的示例是在活动 A 之前启动活动 B:如果不是,系统可能会避免在活动 A 上调用 onSaveInstanceState(android.os.Bundle) t 在 B 的生命周期内被杀死,因为 A 的用户界面状态将保持不变。默认实现通过在层次结构中具有 id 的每个视图上调用 android.view.View.onSaveInstanceState() 并保存当前聚焦视图的 id(所有其中由 onRestoreInstanceState(android.os.Bundle)) 的默认实现恢复。如果您重写此方法以保存每个单独视图未捕获的附加信息,您可能需要调用默认实现,否则请准备好自己保存每个视图的所有状态。如果调用,此方法将在 onStop() 之前发生。无法保证它会在 onPause() 之前还是之后发生。onSaveInstanceState() 在具有 id 的层次结构中的每个视图上,并通过保存当前聚焦视图的 id(所有这些都由 onRestoreInstanceState(android.os.Bundle) 的默认实现恢复)。如果您重写此方法以保存每个单独视图未捕获的附加信息,您可能需要调用默认实现,否则请准备好自己保存每个视图的所有状态。如果调用,此方法将在 onStop() 之前发生。无法保证它会在 onPause() 之前还是之后发生。onSaveInstanceState() 在具有 id 的层次结构中的每个视图上,并通过保存当前聚焦视图的 id(所有这些都由 onRestoreInstanceState(android.os.Bundle) 的默认实现恢复)。如果您重写此方法以保存每个单独视图未捕获的附加信息,您可能需要调用默认实现,否则请准备好自己保存每个视图的所有状态。如果调用,此方法将在 onStop() 之前发生。无法保证它会在 onPause() 之前还是之后发生。您可能希望调用默认实现,否则请准备好自己保存每个视图的所有状态。如果调用,此方法将在 onStop() 之前发生。无法保证它会在 onPause() 之前还是之后发生。您可能希望调用默认实现,否则请准备好自己保存每个视图的所有状态。如果调用,此方法将在 onStop() 之前发生。无法保证它会在 onPause() 之前还是之后发生。