应用程序中是否可以有两个相同活动的实例?

时间:2013-12-14 02:35:22

标签: android

我注意到我的一位同事将活动的所有成员变量声明为静态。他的观点是,活动永远不会有两个实例,静态成员变量比非静态更有效。当然,在创建活动时,他会像所做的那样初始化所有成员变量。

我觉得这是错的。我不认为收益是合理的。但我想让你们这样做。它是否是一个好的编程实践可能超出了stackoverflow的任务范围。所以我的具体问题是,如果为活动使用静态成员变量会破坏任何东西(除了编码器在onCreate中没有正确初始化它们的错误)。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

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

要只有一个实例,您必须在清单

中声明以下内容
    <activity android:name=".YourActivity"
          android:launchMode="singleTask"
          android:label="@string/app_name" />

答案 1 :(得分:1)

是的,您可以在同一个活动上拥有多个实例,而且您经常需要这样做。

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

您可以在清单文件中将活动限制为declaring it that way