-3

假设我已经使用PHP + MySQL登录系统,然后,退出应用程序后,我再次运行应用程序,无需再次登录和自动登录,请帮助解决问题。

4

2 回答 2

3

这是您应该为自动登录执行的操作:

1.从登录用户网络服务中获取一个会话ID。这个会话ID与您进行的每个网络服务调用相关联。

2.只需将会话ID存储在SharedPreferences或其他形式的持久存储中。当应用程序重新启动时,检查会话ID是否已定义。确保在每次注销时将其初始化为null。如果会话ID在SharedPreferences定义为自动登录用户。

3. 使用此会话 ID 进行任何进一步的 Web 服务调用。

于 2012-06-25T07:44:20.747 回答
1

第一次登录时,您会在响应中获得用户名或用户 ID,而不是将用户名或用户 ID 存储在 sharedpreference 中,如下所示

  SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);

  prefs.edit().putInt("userid",userid).commit();

在成功登录后,这将优先存储您的用户 ID,您可以检查您是否已经登录

int Userid;
prefs = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
Userid= mPrefs.getInt("userid", 0);  which will return defalut value 0 if u are not login 

检查后

 if(Userid>0){
  // Means  u are already logged in  do here code what u want if u are login 
  }else{
    // Means  u are not logged in than go to your login pageview from here
 }

这只是做你想做的事情的简单方法假设如果你想要在按钮点击上注销功能而不是 onclick 事件你必须添加以下代码进行注销,这将清除偏好

 prefs = PreferenceManager.getDefaultSharedPreferences(MyAccountActivity.this);
 prefs.edit().clear().commit();
于 2012-06-25T07:56:31.320 回答