使用 Bundle 而不是公共方法传递变量的优点是什么?

What are the pros on passing variables using Bundle instead of publics methods?

我正在学习开发 android 应用程序的 udacity 课程。

我想知道第 5 课的替代解决方案是否正确:处理列表项点击。

当我们有 2 个面板并单击列表中的项目时的挑战,Uri 应该直接从 MainActivity 传递到 DetailFragment 而无需调用 DetailActivity

我看到官方的解决方案是:使用Bundle并将其作为参数传递给fragment.setArguments(args);

但不是上面为什么不创建一个public方法?,我尝试创建一个public方法,例如setmUri(Uri uri)来设置DetailFragment中的成员变量mUri,然后调用它来自 MainActivity,效果很好

但我的最后一个问题是:在这种特殊情况下,使用 Bundle 而不是 publics 方法传递变量的专业人士是什么?

非常感谢。

I tried with creating a public method such as setmUri(Uri uri) to set member variable mUri in DetailFragment and then call it from MainActivity, and this worked well

默认情况下,不会处理配置更改。当用户旋转屏幕、更改语言环境、连接键盘等时,您的 activity 及其片段将默认被销毁并重新创建。

它也不会处理非常常见的进程终止场景:

  • 用户在您的应用程序中
  • 用户按下主屏幕,将您的应用移至后台
  • 5 分钟后,当您仍在后台时,Android 终止您的进程以释放系统 RAM 供其他进程使用
  • 5 分钟后,用户 returns 访问您的应用程序

在这些更改(配置更改或进程终止)中,任何属于已保存实例状态的部分都不会丢失。对于片段的输入,使该信息成为已保存实例状态的一部分的最简单方法是通过参数 Bundle.