1. 程式人生 > >Android中Application類儲存全域性變數

Android中Application類儲存全域性變數

在Android應用中使用全域性變數,除了public的靜態變數,還有更優雅的方式是使用android.app.Application。

啟動Application時,系統會建立一個PID,即程序ID,所有的Activity就會在此程序上執行。
那麼我們在Application建立的時候初始化全域性變數,同一個應用的所有Activity都可以取到這些全域性變數的值。

例如,在Application中儲存登入狀態。
AndroidMenifest.xml如下:

<application
    android:name=".CombankDroid"
    android:icon="@drawable/first_aid"
android:label="@string/app_name" > </application>

CombankDroid.java程式碼如下:

public class CombankDroid extends Application {
    private boolean isLogin;

    public boolean isLogin(){
        return isLogin
    }

    public void setIsLogin(boolean b){
        isLogin = b;
    }
}

Activity的程式碼如下:

class Anyhow extends Activity {
    .....
    @Override
    public void onCreate(Bundle b){
        ...
        //CombankDroid combankDroid = (CombankDroid) getApplicationContext();也行
        CombankDroid combankDroid = (CombankDroid) getApplication();

        // Don't start the main activity if we don'
t have credentials if (!combankDroid.isLogin()) { redirectToLoginActivity(); } else { loadUi(); } ... } ... }