哪种方式更适合在android中的活动之间传递参数

时间:2012-08-11 15:26:16

标签: android

  

可能重复:
  Passing data between activities in Android

Ok让我们说在我的Activity1.java中有一个名为date

的变量

如果我将其声明为静态,在我的Activity2中,我可以通过编写Activity1.date来回忆它的价值。

如果它不是静态的,我可以在启动activity2时通过Bundle传递date的值。

两种方式都有效。

我的问题是哪个是最优先的并且缺点较少?

2 个答案:

答案 0 :(得分:1)

当然,在捆绑中传递的内容远不如此。

如果没有Activity1,则无法存在静态Activity2。活动意味着高度可重用,但通过静态,您可以高度重视这些活动。

答案 1 :(得分:1)

静态很糟糕的原因很多,主要是因为它是静态的。这意味着它将始终占用内存,并且您将只有一个字段实例可以在您的活动的所有实例中共享。

因此,你可以用许多微妙的方式咬你这么多地方。例如 - 如果您为同一活动编写多个单元测试,则将共享该值,因此您的测试将不是独立的。或者另一个用例:你在堆栈上有几个你的活动实例 - 它们都将共享这个值,在很多情况下它不是你想要的。

底线:不做静电。静态可以为您节省一两行代码但可能会带来很多麻烦。顺便说一句,它不是特定于android,对任何平台都是如此