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