Android全域性變數的定義與使用

安迪潘發表於2011-08-26

Android應用程式開發中,有的時候我們在應用程式的任何一個地方都需要訪問一個全域性變數,也就是在任何一個Activity中都可以訪問的變數。它不會因為Activity的生命週期結束而消失。要實現應用程式級的變數,我們可以通過Application這個類來實現。

class MyApp extends Application {

  private String myState;

  public String getState(){
    return myState;
  }
  public void setState(String s){
    myState = s;
  }
}

class Blah extends Activity {

  @Override
  public void onCreate(Bundle b){
    ...
    MyApp appState = ((MyApp)getApplicationContext());
    String state = appState.getState();
    ...
  }
}

然後再manifest中新增應用:

<application android:name=".MyApp" android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".ClickableListItemActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
注意:

不用新建<application />,在原有基礎上新增內容:android:name=".your_App_Name"


Application物件只有在應用程式中所有Activity都destroy時才會destrory,所有我們可以在任何一個Activity中訪問它。

參考文章:http://androidstudy.iteye.com/blog/776127

http://www.eoeandroid.com/thread-163-1-1.html

相關文章