Ok让我们说在我的Activity1.java中有一个名为date
如果我将其声明为静态,在我的Activity2中,我可以通过编写Activity1.date
来回忆它的价值。
如果它不是静态的,我可以在启动activity2时通过Bundle
传递date的值。
两种方式都有效。
我的问题是哪个是最优先的并且缺点较少?
答案 0 :(得分:1)
当然,在捆绑中传递的内容远不如此。
如果没有Activity1,则无法存在静态Activity2。活动意味着高度可重用,但通过静态,您可以高度重视这些活动。
答案 1 :(得分:1)
静态很糟糕的原因很多,主要是因为它是静态的。这意味着它将始终占用内存,并且您将只有一个字段实例可以在您的活动的所有实例中共享。
因此,你可以用许多微妙的方式咬你这么多地方。例如 - 如果您为同一活动编写多个单元测试,则将共享该值,因此您的测试将不是独立的。或者另一个用例:你在堆栈上有几个你的活动实例 - 它们都将共享这个值,在很多情况下它不是你想要的。
底线:不做静电。静态可以为您节省一两行代码但可能会带来很多麻烦。顺便说一句,它不是特定于android,对任何平台都是如此