0

可能重复:
在 Android 中的活动之间传递数据

好的,可以说在我的 Activity1.java 中有一个名为的变量date

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

如果它不是静态的,我可以在启动 activity2 时通过Bundle.

两种方式都有效。

我的问题是哪个最受青睐并且缺点更少?

4

2 回答 2

1

当然,在捆绑中传递的耦合要少得多。

没有 Activity1 就不能存在静态 Activity2。活动是高度可重用的,但是通过静态,您可以高度耦合活动。

于 2012-08-11T15:32:35.117 回答
1

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

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

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

于 2012-08-11T15:32:48.293 回答