[英]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.