2013-12-14 118 views
2

我注意到我的一个同事正在将一个活动的所有成员变量声明为static。他的观点是,永远不会有活动的两个实例,并且静态成员变量比非静态更有效。当然,创建活动时,他会像所做的那样初始化所有成员变量。应用程序中可以有两个相同活动的实例吗?

我觉得这是错误的。我不认为这种收益甚至是合理的。但我想由你们来做这件事。不管这是否是一种好的编程习惯,可能超出了stackoverflow的授权范围。所以我的具体问题是,如果为一个活动使用静态成员变量会破坏任何东西(除了编码器在onCreate中未正确初始化它们的错误)。

非常感谢您的帮助。

回答

1

是的,android可以创建2个相同活动的实例,所以你的朋友是错的。

要只有一个实例,您必须声明清单中

<activity android:name=".YourActivity" 
      android:launchMode="singleTask" 
      android:label="@string/app_name" /> 
1

是下面的,你可以在同一个活动的多个实例,你经常想。

例如,如果我有3个视图,简单地组成一个ListView。您可以创建3个具有相同代码重复和小改动的活动,或者一个处理加载布局并获得对ListView的引用并将其扩展为添加功能的活动。

您可以通过清单文件中的declaring it that way将活动限制为一个实例。

相关问题