Androidアプリケーション変数

2353 ワード


Androidアプリケーション開発では、アプリケーションのどこでもグローバル変数、つまりActivityでアクセスできる変数にアクセスする必要がある場合があります.Activityのライフサイクルが終了したために消えることはありません.アプリケーションレベルの変数を実装するには、アプリケーションというクラスで実装できます.まず、Androidを継承するクラスHelloApplicationを新規作成します.app.アプリケーションクラスは、次に私たちのクラスに変数を追加します.次のようになります.01 public   class   HelloApplication  extends   Application { 02          private   int   globalVariable= 1 ; 03
  04          public   int   getGlobalVariable() { 05                  return   globalVariable; 06          } 07
  08          public   void   setGlobalVariable( int   globalVariable) { 09                  this .globalVariable = globalVariable; 10          } 11 }
 
そしてアプリケーションプロファイルAndroidManifest.xmlでは、次の図に示すように、アプリケーションのいずれかのActivityで変数にアクセスできるように構成されています.
 
  • ((HelloApplication)getApplication()).setGlobalVariable(10);
  • int valiable=((HelloApplication)getApplication()).getGlobalVariable();



  • どうですか.簡単じゃないの?Applicationオブジェクトは、アプリケーション内のすべてのActivityがdestroryである場合にのみdestroryにアクセスできます.すべてのActivityにアクセスできます.では、なぜstatic変数を使用してグローバル変数を保存できないのでしょうか.次のようになります.

  • public class DataStoreClass {
  • private static int globalVariable=1;
  •  
  • public static int getGlobalVariable() {
  • return globalVariable;
  • }
  • public static void setGlobalVariable(int newGlobalVariable) {
  • globalVariable = newGlobalVariable;
  • }
  • }


  • このようにして、DataStoreClassクラスはActivityのようにandroidシステムによって強制的に破棄される場合があります.したがって、アプリケーションの実行中にDataStoreClassの値が失われたり、望ましくない値が得られたりする可能性があります.