什么是跳过活动的最佳方式

时间:2014-02-17 11:26:12

标签: android sharedpreferences

我正在开发一个应用程序,其中用户登录到他的仪表板并保持登录状态直到他退出(我的意思是如果应用程序关闭并重新启动,他仍然保持登录状态)。我正在使用SharedPreferences来检查用户是否确实已登录。

Preference.java

public class Preference {

    Context context;
    SharedPreferences sharedPref;

    public Preference(Context context){
        this.context = context;
        sharedPref = context.getSharedPreferences("LoginState", 0);
    }

    public boolean getIsLoggedIn(){
        return sharedPref.getBoolean("State", false);
    }

    public void setIsLoggedIn(boolean state){
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putBoolean("State", state);
        editor.commit();
    }

}

我在用户登录时调用函数setIsLoggedIn(true),在用户注销时调用setIsLoggedIn(false)。但是如果用户已经登录,如何检查并跳过LoginActivity?

4 个答案:

答案 0 :(得分:0)

如果LoginActivity是启动器图标调用的默认应用活动,您只需检查其登录onCreate()方法,并在用户登录时显示其他活动。

onCreate() {
    super.onCreate();
    Preference p = new Preference(this);
    if(p.getIsLoggedIn()) {
       finish();
       // start another app activity here ...
    }

    // ...
}

答案 1 :(得分:0)

将此条件放入启动画面

Preference pre = new Preference(SplashScreen.this);
    if(preference.getIsLoggedIn()){
    // move to Login Screen
    }else{
     // move to your mainscreen
    }

答案 2 :(得分:0)

从您的第一个活动中执行此操作

 SharedPreferences.Editor editor = sharedPref.edit();               
    Boolean flag = sharedPref.getBoolean("state", false);
                    if(flag==false){
    // Start your login ACTIVITY
                    }else{
                        //Start your activity which you want to hit after login
                    }

答案 3 :(得分:0)

我认为你应该在LoginActivity的onResume或onCreate方法中添加一些代码, 检查,如果用户已登录,如果是,则触发启动仪表板活动的意图。 这样的事情。

public void onResume() {
    super.onResume();
    if (Preferences.getIsLoggedIn()) {
        startActivity(new Intent(this, DashboardActivity.class));
    }
}