Java 改进登录/注销系统

Java 改进登录/注销系统,java,android,login,Java,Android,Login,我有一个登录/注销系统,用户可以通过facebook或我们自己的mysql数据库登录 当用户成功登录时,将保存以下内容: SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("loggedIn", true); editor.putString("email", EMAIL);

我有一个登录/注销系统,用户可以通过facebook或我们自己的mysql数据库登录

当用户成功登录时,将保存以下内容:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("loggedIn", true);
editor.putString("email", EMAIL); 
editor.putString("password", PASSWORD);
editor.putInt("USERID",  Integer.parseInt((String) product.get("ProfileID")));
editor.commit(); 
然后我有一个启动页面,检查用户是否登录:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean loggedin = settings.getBoolean("loggedIn", false);
if (loggedin) {
    Intent intent = new Intent(this, LoggedIn.class);
    startActivity(intent);
} else {
    Intent intent = new Intent(this, LogIn.class);
    startActivity(intent);
}
然后当用户注销时:

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("loggedIn", false);
editor.putString("email", "");
editor.putString("password", "");
editor.commit();
db.clearLists();
db.clearProducts();
Intent intent = new Intent(v.getContext(), Splash.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
v.getContext().startActivity(intent);
这似乎工作正常,即用户注销并发送回登录页面,其所有数据已从应用程序中清除

然而,一些用户报告说,如果他们关闭应用程序并返回,他们实际上仍在登录。
我无法复制这一点,因此想知道是否有人对如何改进我的登录/退出系统有任何意见,以改进它并防止出现这种情况。

您的代码看起来不错。但是我想您可以将您的登录名转移到sqlite数据库。将它们保存到db并从db检索登录信息。这是一个快速解决方案;)

最好在注销时刷新共享首选项,并在登录时检查是否存在共享首选项,然后以其他方式登录。将用户重定向到登录页面