【发布时间】:2013-08-27 08:27:31
【问题描述】:
我正在开发一个用户需要注册/登录的 android 应用程序,这很好用,但是当用户退出时,问题就出在哪里。
当前,当用户按下注销按钮时,它确实会将他们带回登录页面,但是如果您离开应用程序然后返回到它(因此它仍在内存中)而无需再次登录,它将带您返回到您登录后看到的页面。
我使用了一个共享偏好来记录用户是否登录,然后有一个启动活动,这是开始决定要显示哪个屏幕的第一件事:
public class Splash extends SherlockActivity {
public static final String PREFS_NAME = "PrefsFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean loggedin = settings.getBoolean("loggedIn", false);
if (loggedin){
Intent intent = new Intent(this, MyLists.class);
startActivity(intent);
}
else{
Intent intent = new Intent(this, LogIn.class);
startActivity(intent);
}
}
}
然后我的注销按钮看起来像
private OnClickListener OnClick_logout = new OnClickListener() {
public void onClick(View v) {
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.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
v.getContext().startActivity(intent);
}
};
按下按钮后,启动活动会将用户带到当前的登录屏幕,但就像我说的那样,如果您随后关闭应用程序并返回它,它将把用户带到“MyLists”活动。
【问题讨论】:
-
你有什么问题..?
-
如果您随后关闭应用程序并返回它,它会将用户带到“MyLists”活动。无需实际再次登录
-
你能把
LogIn.java的代码贴出来吗?
标签: java android login sharedpreferences