繁体   English   中英

保持我的会话处于活动状态的android应用

[英]Keep my session active android app

我正在创建一个Android应用程序,无法弄清楚为什么我的会话无法保持活动状态!

我创建一个登录布局,当我成功获得连接时,我的userLocalStore为true! 因此,当我回到该应用程序的首页并再次按下登录按钮时,我希望它仅显示我的帐户详细信息。

这是我正在使用的代码:

case R.id.accLogin:
    if (userLocalStore.getUserLoggedIn() == false){
        startActivity(new Intent(this, Compte.class));
    } else {
        startActivity(new Intent(this, Login.class));
    }

但这不起作用! Android应用程序是否有类似“ Cookie”的东西?

这是我的userLocalStore代码:

public class UserLocalStore {

public static final String SP_NAME ="userDetails";
SharedPreferences userLocalDatabase;

public UserLocalStore(Context context)
{
    userLocalDatabase = context.getSharedPreferences(SP_NAME, 0);
}

public void storeUserData(User user)
{
    SharedPreferences.Editor spEditor = userLocalDatabase.edit();
    spEditor.putString("name", user.name);
    spEditor.putString("surname", user.surname);
    spEditor.putString("username", user.username);
    spEditor.putString("password", user.password);
    spEditor.putInt("age", user.age);
    spEditor.commit();
}

public User getLoggedInUser() {
    String name = userLocalDatabase.getString("name", "");
    int age = userLocalDatabase.getInt("age", -1);
    String username = userLocalDatabase.getString("username", "");
    String password = userLocalDatabase.getString("password", "");
    String surname = userLocalDatabase.getString("surname", "");

    User storedUser = new User(name, age, username, password, surname);
    return storedUser;
}

public void setUserLoggedIn(boolean loggedIn)
{
    SharedPreferences.Editor spEditor = userLocalDatabase.edit();
    spEditor.putBoolean("LoggedIn", loggedIn);
    spEditor.commit();
}

public boolean getUserLoggedIn()
{
    if (userLocalDatabase.getBoolean("LoggedIn", false))
    {
        return false;
    }else
    {
        return true;
    }
}

public void clearUserData()
{
    SharedPreferences.Editor spEditor = userLocalDatabase.edit();
    spEditor.clear();
    spEditor.commit();
}

}

我刚发现我的错误! 只是要改变

public boolean getUserLoggedIn() { if (userLocalDatabase.getBoolean("LoggedIn", false)) { return false; }else { return true; } }

public boolean getUserLoggedIn()
{
    if (userLocalDatabase.getBoolean("LoggedIn", false))
    {
        return true;
    }else
    {
        return false;
    }
}

坦克求救!

是的,您可以使用SharedPreferences模拟cookie。 您可以创建一个可通过文件名打开的整个应用程序(所有活动)都可以访问的文件。

SharedPreferences prefs = getSharedPreferences("a filename", Context.MODE_PRIVATE);
// writing
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("cookie", "value");
editor.commit();
// reading
String cookie = sharedPref.getString("cookie", "defaultValue");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM