7

在当前的 Android 项目中,我在几个活动之间传递了一些数据。我只是好奇是否有在活动之间发送数据的最佳实践。我有一个字符串,它将根据一项活动的结果进行更新/附加,然后用于 Facebook 共享两项活动。应该将此字符串设置为全局静态字符串,然后共享,还是应该使用传递字符串intent.PutExtra

全局字符串可能代码较少,但意味着另一个静态变量。或者,额外的意图很好,但似乎重复,因为它正在通过几个活动。无论哪种方式都可以,只是想知道一个是否优于另一个。

4

3 回答 3

6

在我看来,只有 Intent 会起作用。在 Android 上,您的应用程序必须为它被终止的事件做好准备(例如,传入的视频呼叫将其置于后台,并且还消耗大量内存,因此后台应用程序被终止)。当 Android 恢复您的应用程序时,它会重新启动正在显示的 Activity 并重新发送启动它的 Intent,因为这些已保存到持久存储中。但是其他类的状态(包括它们的静态变量)没有保存,如果你不保存它们,就会丢失/重置。

于 2012-04-04T23:46:02.383 回答
5

您应该始终避免使用全局变量。有时您会需要它们,在大多数情况下,这是由于设计问题。您不应该“因为代码更少”或更容易编码而使用全局变量。顺便说一句,仅属于公共静态变量而不属于常量。全局变量使您的生活更加艰难,因为

  • 您的代码更难阅读(该变量来自哪里......它超出了“范围”)
  • 更难测试(谁读取变量?谁修改变量?)
  • 没有访问控制(没有 getter/setter)
  • 穿线
  • 还有更多
于 2012-04-05T00:05:29.887 回答
1

有额外数据的意图。最好传递 getExtras 并且您的父活动已预定义事件以跟踪子活动何时完成。

于 2012-04-05T00:13:35.517 回答