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

Android 使用Bundle而不是publics方法传递变量的优点是什么?,android,bundle,public-method,Android,Bundle,Public Method,我正在上开发android应用程序的udacity课程 我想知道第五课的另一个解决方案:处理列表项单击是否正确 当我们有两个面板并单击列表中的一项时,Uri应该直接从MainActivity传递到DetailFragment,而不调用DetailActivity 我已经看到正式的解决方案是:使用Bundle并将其作为fragment.setArguments(args)中的参数传递 但与上面的为什么不创建一个公共方法不同,我尝试创建一个公共方法,比如setmUri(Uri-Uri),在Detai

我正在上开发android应用程序的udacity课程

我想知道第五课的另一个解决方案:处理列表项单击是否正确

当我们有两个面板并单击列表中的一项时,Uri应该直接从MainActivity传递到DetailFragment,而不调用DetailActivity

我已经看到正式的解决方案是:使用Bundle并将其作为fragment.setArguments(args)中的参数传递

但与上面的为什么不创建一个公共方法不同,我尝试创建一个公共方法,比如setmUri(Uri-Uri),在DetailFragment中设置成员变量mUri,然后从MainActivity调用它,效果很好

但我的最后一个问题是:对于这种特殊情况,专业人士如何使用Bundle而不是publics方法传递变量

非常感谢

我尝试创建一个公共方法,比如setmUri(uriuri),在DetailFragment中设置成员变量mUri,然后从MainActivity调用它,效果很好

默认情况下,这不会处理配置更改。当用户旋转屏幕、更改区域设置、连接键盘等时,默认情况下将销毁并重新创建您的活动及其片段

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

  • 用户在您的应用程序中
  • 用户按HOME键,将应用程序移动到后台
  • 5分钟后,当您仍在后台时,Android会终止您的进程,为其他进程释放系统RAM
  • 5分钟后,用户返回到您的应用程序
在这些更改(配置更改或进程终止)期间,属于已保存实例状态的任何内容都不会丢失。对于片段的输入,使该信息成为已保存实例状态一部分的最简单方法是通过参数
Bundle