【发布时间】:2011-09-07 02:59:36
【问题描述】:
我想知道如果我定义一个基础 Activity 对象并将我的所有活动作为其子类会发生什么。然后我在基类中声明一个静态变量,是所有子类都使用相同的静态变量还是每个子类都有一个。
例如。我的基类:
public class MyBaseActivity extends Activity{
static int myStatic;
...
....
}
然后:
public class MyActivity1 extends MyBaseActivity {
private void someMethod1(){
myStatic = 1;
}
...
....
}
和
public class MyActivity1 extends MyBaseActivity {
private void someMethod2(){
if (myStatic == 1)
doSomething();
}
...
....
}
如果我现在启动 MyActivity1 并在“myStatic”中设置一个值。然后它退出,然后我启动 MyActivity2 - 我是否仍然拥有第一个活动设置的值? 在上面的例子中,“if”语句是真还是假?
我知道,如果我多次实例化 Activity1,那么显然我会得到相同的静态变量。但是,这里我每次都实例化一个不同的子类。
我的印象是这就是发生在我身上的事情,但我想确定一下。
【问题讨论】: