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