Android應用程序開發中,有的時候我們在應用程序的任何一個地方都需要訪問一個全局變量,也就是在任何一個Activity中都可以訪問的變量。它不會因為Activity的生命周期結束而消失。要實現應用程序級的變量,我們可以通過Application這個類來實現。 首先,我們新建一個類HelloApplication繼承Android.app.Application類,然後在我們的類中增加一些變量。如下所示:
- public class HelloApplication extends Application {
- private int globalVariable=1;
-
- public int getGlobalVariable() {
- return globalVariable;
- }
-
- public void setGlobalVariable(int globalVariable) {
- this.globalVariable = globalVariable;
- }
- }
然後在應用程序配置文件AndroidManifest.xml中進行相應的配置,如下圖所示:
完成之後,我們在應用程序的任何一個Activity中可以通過如下方法訪問我們的變量:
- ((HelloApplication)getApplication()).setGlobalVariable(10);
- int valiable=((HelloApplication)getApplication()).getGlobalVariable();
怎麼樣? 是不是很簡單? Application對象只有在應用程序中所有Activity都destroy時才會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;
- }
- }