Android共享全局數據

在平時的開發中,有時候我們需要一些全局數據,來讓應用中的所有Activity和View都能訪問,大傢在遇到這種情況時,可能首先會想到自己定義一個類,然後創建很多靜態成員,不過android已經為我們提供瞭解決方案,下面就來介紹一下:

在Android中有一個名為Application的類,我們可以在Activity中使用getApplication()方法來獲得,它是代表我們的應用程序的類,使用它可以獲得當前應用的主題、資源文件中的內容等等,這個類有一個靈活的特性就是可以被我們繼承,來添加我們自己的全局屬性。例如我們在開發一個遊戲應用時,需要保存遊戲得分,那麼我們就可以繼承Application,代碼如下:

 

 
 public class GameApplication extends Application {

    private int score;

 

    public int getScore() {

        return score;

    }

 

    public void setScore(int score) {

        this.score = score;

    }

}
 

這樣我們就擴展瞭自己的屬性,不過還沒有結束,另外一個比較關鍵的一步,就是需要在androidManifest.xml文件中將我們擴展後的Application類指定上去,例如下面的代碼:

 

 
 <application

    android:name=".GameApplication"

    android:icon="@drawable/icon"

    android:label="@string/app_name">
 

這樣指定好之後,我們的自定義Application就算完成瞭,然後我們可以很方便的在任何Activity和View中來獲取我們的分數屬性,代碼如下:

Activity中:

 

 
 // 設置分數  

((GameApplication)getApplication()).setScore(100);

// 獲取分數  

((GameApplication)getApplication()).getScore();
 

View中:

 

1
 ((GameApplication)getContext().getApplicationContext()).getScore();
 

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *