1

簡単な質問ですが、ドキュメントで答えが見つかりません。

Androidアプリの静的フィールドの寿命はどれくらいですか? いつ初期化され、いつ破棄されますか?最終属性はそのライフサイクルを変更しますか?プライベート/パブリックはどうですか?アプリケーションインスタンスが存続している限り、それらは存続しますか?

2つのインスタンスを取ります:

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;

     }

}

編集:静的辞書についてもどうですか?

例えば、

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());
}

「文字列」要素はどのくらいの期間存続しますか?

4

2 に答える 2

5

いつ初期化され、いつ破棄されますか?

それを宣言するクラスがロードされると初期化され、アプリケーションプロセスが終了するまで存続します。

最終属性はそのライフサイクルを変更しますか?

いいえ

プライベート/パブリックはどうですか?

いいえ

Application インスタンスが存続している限り存続しますか?

はい

于 2012-10-02T14:28:16.640 に答える
1
  • staticスコープは、クラスがアンデプロイされるまでです。
    開始時(ロード直後)に開始されます。
    いいえ。final属性は上記の動作を変更しません。
于 2012-10-02T14:21:14.383 に答える