我注意到我的一位同事将活动的所有成员变量声明为静态。他的观点是,活动永远不会有两个实例,静态成员变量比非静态更有效。当然,在创建活动时,他会像所做的那样初始化所有成员变量。
我觉得这是错的。我不认为收益是合理的。但我想让你们这样做。它是否是一个好的编程实践可能超出了stackoverflow的任务范围。所以我的具体问题是,如果为活动使用静态成员变量会破坏任何东西(除了编码器在onCreate中没有正确初始化它们的错误)。
提前感谢您的帮助。
答案 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。