Android中Application類儲存全域性變數
阿新 • • 發佈:2019-01-26
在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();
}
...
}
...
}