Android 创建全局变量

Android 创建全局变量,android,Android,我正在尝试在我的应用程序中实现基本登录。如果用户登录,我想做的是将“全局”变量设置为true/false 我跟着。 这就是我现在的代码: import android.app.Application; public class GlobalParameters extends Application{ private boolean loggedIn; public boolean isLoggedIn() { return loggedIn; }

我正在尝试在我的应用程序中实现基本登录。如果用户登录,我想做的是将“全局”变量设置为true/false

我跟着。 这就是我现在的代码:

import android.app.Application;

public class GlobalParameters extends Application{
    private boolean loggedIn;

    public boolean isLoggedIn() {
    return loggedIn;
    }

    public void setLoggedIn(boolean loggedIn) {
    this.loggedIn = loggedIn;
    }
}
这在我的
onCreate
上:

GlobalParameters gp = ((GlobalParameters)getApplicationContext());
gp.setLoggedIn(false);
但是
GlobalParameters gp=…
引发此异常:

类卡斯特例外

我也在我的清单中添加了这一点:

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

有什么想法吗


谢谢。

使用
this.getApplication()
获取与您的
活动关联的
应用程序。但我认为在你的情况下,使用
应用程序
有点过分了。您可以在类中使用静态字段


但是,如果您希望在您的
活动被丢弃时保留状态,那么您可以使用
SharedReferences
,这里有一个很好的入门指南

如果您的变量仅用于登录和注销,则最好使用静态变量,在登录时将其设置为true,在注销时将其设置为false

public static boolean loggedIn;
并按如下方式使用:

myApplication.loggedIn = true;

myApplication.loggedIn = false;

我宁愿使用共享pref来存储登录令牌。当某个活动被丢弃时,Android中的静态字段不会保留状态。这就是应用程序(丑陋)解决方案的全部要点。