如何在 Android 中维护会话。例如在我的应用程序中,用户可以使用普通登录或 Facebook 登录方式登录。使用该应用程序后,用户可以通过注销会话来关闭应用程序,或者用户可以直接关闭应用程序而无需注销。以便用户下次无需登录即可进入主屏幕。
当我的应用程序在未注销会话的情况下关闭并在两天后打开时,用户会话丢失并且我的应用程序崩溃。当它正确注销然后打开时,应用程序工作正常。如何在不注销的情况下关闭会话?
如何在 Android 中维护会话。例如在我的应用程序中,用户可以使用普通登录或 Facebook 登录方式登录。使用该应用程序后,用户可以通过注销会话来关闭应用程序,或者用户可以直接关闭应用程序而无需注销。以便用户下次无需登录即可进入主屏幕。
当我的应用程序在未注销会话的情况下关闭并在两天后打开时,用户会话丢失并且我的应用程序崩溃。当它正确注销然后打开时,应用程序工作正常。如何在不注销的情况下关闭会话?
首先,您可以使用共享首选项来存储用户信息,以便下次它不会要求登录。以及您的下一个问题处理会话。因此,在您的服务器端,您将在特定时间段后破坏会话。你可以做什么使用时间戳。就我而言,我是这样使用它的:我的服务器在 3 小时后自动销毁会话。因此,当用户登录到我的应用程序时,我会为此保存时间戳。下次我检查时间戳是否过期。如果它已过期,则首先代表用户在后台调用登录。这样该服务器将为用户创建新会话。
您可以在SharedPreferences
.Look中维护它以供参考。
例如,要保存用户名、密码和会话 ID,您可以:
SharedPreferences pref = context.getSharedPreferences("Session Data", MODE_PRIVATE);
SharedPreferences.Editor edit = pref.edit();
edit.putString("User Name", username);
edit.putString("Password", password);
edit.putInt("Session ID", session_id);
edit.commit();
并得到他们
SharedPreferences pref = context.getSharedPreferences("Session Data", MODE_PRIVATE);
username = pref.getString("User Name", "");
password = pref.getString("Password", "");
session_id = pref.getInt("Session ID", 0);