Android Fragment 实例变量与 Bundle 参数?

Android Fragment instance variable vs Bundle arguments?

Android 片段实例变量和包参数有什么区别? 什么时候用什么?

A Bundle 是一种持久性数据。 Android 运行时可能会重启你 ActivityFragment 例如在你的设备方向改变时。当 Android 创建将用于横向布局的第二个实例时,第一个实例的变量(假设用于纵向布局的变量)不存在。

通过将 state/variables 放在 Bundle 中,您的 class 的新实例会在重新创建时取回变量。

你可以在第一个实例的onSaveInstanceState()方法中的Bundle中添加你想要保留的实例变量。创建第二个实例时,您会在传递给 onCreate() 方法的 Bundle 中获得这些。