Android中的静态字段寿命

Sta*_*wed 1 java static android garbage-collection

快速提问,但我在文档中找不到答案.

Android应用程序中静态字段的生命周期是多少? 什么时候初始化,什么时候被销毁?最终属性是否会修改其生命周期?私人/公众怎么样?只要Application实例存活,它们是否存活?

举两个例子:

public class DemoClass {
   static int one = 1;
   static int three = DemoActivity.two + one;
}

public class DemoActivity extends Activity {
     public static int two = DemoClass.one + DemoClass.one;
     private static final int four;
     public static int five;

     public void onCreate(Bundle b) {
          four = two + two;
          five = DemoClass.three  + DemoClass.one + DemoClass.one;

     }

}
Run Code Online (Sandbox Code Playgroud)

编辑:还有静态词典呢?

例如,

public class AnotherDemoActivity extends Activity {
public static ArrayList<String> strings = new ArrayList<String>();

@Override public void onCreate(Bundle b) {
   strings.add("test");
   strings.add(new String("another test");
   strings.add(new DemoClass());
}
Run Code Online (Sandbox Code Playgroud)

"字符串"元素需要多长时间?

Ian*_*ick 5

什么时候初始化,什么时候被销毁?

它在声明它的类被加载时被初始化,它将一直存在,直到你的应用程序进程结束.

最终属性是否会修改其生命周期?

没有

私人/公众怎么样?

没有

只要Application实例存活,它们是否存活?