在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;
}
}
Anyhow.java
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();
}
...
}
...
}