如何在Android应用程序中维护会话超时处理

时间:2012-07-25 09:58:46

标签: android android-layout android-intent android-emulator android-widget

enter image description here我是Android应用程序开发的新手。我有一个小问题。在我的Android应用程序上工作突然点击“主页”按钮,所以它转到后台一段时间再次转到“主页”并单击我的应用程序图标它再次从我的第一个屏幕开始,而不是这个我保留上次查看的活动,并应显示消息,如“您的会话超时所以请再次使用两个EditText框重新登录”然后检查凭据并允许用户继续或重定向到登录屏幕。如何实现这一点。

提前致谢..

4 个答案:

答案 0 :(得分:3)

在Android中很简单。你需要保持SharedPreferences

阅读this以更好地理解这个概念。

这将作为

 ==> when ever you are trying to maintain login concept save user name in the sharedpreference.
 ==> once data is edited in prefernces.xml , the data in it can be check in any Activity.

例如,要保存用户名,密码和会话ID,您可以:

 SharedPreferences pref = myContexy.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 = myContexy.getSharedPreferences("Session Data", MODE_PRIVATE);
 username = pref.getString("User Name", "");
 password = pref.getString("Password", "");
 session_id = pref.getInt("Session ID", 0);

答案 1 :(得分:2)

SharedPreferences肯定是要走的路,但要详细了解超时:

  • 将当前时间戳保存在onPause()( - > SharedPreferences
  • 然后在onResume()比较,检查超时

如果你没有超时只是继续,否则显示漂亮的屏幕,只需退出,自毁设备,或在这种情况下你想做的任何事情: - )

您也可以考虑实现某种会话管理器类,以便在更高级别处理它: Nice example/tutorial from android hive

答案 2 :(得分:1)

有关活动生命周期的说明,请参阅此图表:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

覆盖活动中的相应方法,以跟踪它何时失去/重新获得焦点。

答案 3 :(得分:0)

如果你想维护用户登录会话,那么我们可以让处理程序在所有活动中使用首选项,而不是在首先执行此操作。

  1. 用户登录后创建处理程序
  2. 设置sendMessageAtTime(Message,long),long为毫秒值。这将调用已定义的注销函数。