public class CustomApplication extends Application { private static final String VALUE = "Harvey"; private String value; @Override public void onCreate() { super.onCreate(); setValue(VALUE); // 初始化全局变量 } public void setValue(String value) { this.value = value; } public String getValue() { return value; } }
<application android:name="CustomApplication"> </application>
实例代码:
CustomApplication.java
/** * 继承Application * * @author admin * */ public class CustomApplication extends Application { private static final String VALUE = "Harvey"; private String value; @Override public void onCreate() { super.onCreate(); setValue(VALUE); // 初始化全局变量 } public void setValue(String value) { this.value = value; } public String getValue() { return value; } }
public class FirstActivity extends Activity { private CustomApplication app; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); app = (CustomApplication) getApplication(); // 获得CustomApplication对象 Log.i("FirstActivity", "初始值=====" + app.getValue()); // 获取进程中的全局变量值,看是否是初始化值 app.setValue("Harvey Ren"); // 重新设置值 Log.i("FirstActivity", "修改后=====" + app.getValue()); // 再次获取进程中的全局变量值,看是否被修改 Intent intent = new Intent(); intent.setClass(this, SecondActivity.class); startActivity(intent); } }
注:只需要调用Context的 getApplicationContext或者Activity的getApplication方法来获得一个Application对象,然后再得到相应的成员变量即可。它是代表我们的应用程序的类,使用它可以获得当前应用的主题和资源文件中的内容等,这个类更灵活的一个特性就是可以被我们继承,来添加我们自己的全局属性。
SecondActivity.java
public class SecondActivity extends Activity { private CustomApplication app; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); app = (CustomApplication) getApplication(); // 获取应用程序 Log.i("SecondActivity", "当前值=====" + app.getValue()); // 获取全局值 } }
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.test" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name" android:name="CustomApplication"> <!-- 将我们以前一直用的默认Application设置成自定义的CustomApplication --> <activity android:name=".FirstActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity" android:label="@string/app_name"> </activity> </application> </manifest>
Android中Application类用法(转),布布扣,bubuko.com
原文:http://www.cnblogs.com/forrey/p/3685093.html