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://hi.baidu.com/zj41342626/item/74559c38e82730c32f8ec2ed
-----------------------------------------------------------------------------------------------------------------------------
说明1:获取全局变量的引用 方法有 2种 getApplication() 和 getApplicationContext() .
法一: MyApp myApp1 = (MyApp)getApplication();
法二: MyApp myApp2 = (MyApp)getApplicationContext();