【问题标题】:Session timed out and automatic logout from application after few hours in android在android中几个小时后会话超时并从应用程序中自动注销
【发布时间】:2014-01-03 12:32:14
【问题描述】:

我是 Android 应用程序开发的新手。我有一个小问题。如果点击 "Home" 按钮,应用程序会在一段时间后再次进入后台,如果转到 >“主页” 并单击我的应用程序图标再次从我的last viewedActivity(屏幕)开始。到目前为止,它很好,而不是上次查看的屏幕,在这里我想自动注销,它应该显示类似“您的会话超时所以请再次登录 "或重定向到登录页面 "然后检查凭据并允许用户继续相同的应用程序。我正在维护所有用户凭据,即电子邮件、用户名、使用共享首选项在我的应用程序中使用密码和用户 ID。如果应用程序在 android 的后台或应用程序未被用户使用或一段时间保持非活动状态,如何在几个小时后从应用程序自动注销??

等待您的建议??

【问题讨论】:

  • 任何想法如何使用表示令牌及其验证时间的静态数据成员。检查每个活动的 onResume() 中的令牌。如果令牌丢失或过期,将用户重定向到登录活动... ??
  • 你找到解决方案了吗?
  • 是的..我知道如何达到这个要求:)
  • @subha.. 如果你有办法,请分享...

标签: android session


【解决方案1】:

在android中使用TimerTask自动检查asynctask中的会话,并在millisecond中给出特定时间破坏用户会话并在Toast中显示超时消息。

【讨论】:

  • 我想你没有得到我。如果我设置了特定时间,如果用户正在使用应用程序并且时间完成,应用程序将注销。但我的问题是它是否处于非活动状态或用户仅在用户退出几次后才使用它
  • 否则你必须在webservice中处理它
【解决方案2】:

你可以试试这个,它可能对你有帮助。

1.这是一种方式:

public boolean onKeyDown(int keyCode, KeyEvent event) {

         if(keyCode == KeyEvent.KEYCODE_HOME)
         {
          Intent intent = new Intent(Intent.ACTION_MAIN);
          intent.addCategory(Intent.CATEGORY_HOME);
          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
          startActivity(intent);  
          return true;
          }
 return false;
};

2.另一种方式:您可以使用 onStop() 方法。当 Home 按钮被按下时会调用它。在这做你的事情。

【讨论】:

  • 我想在活动而不是 onStop() 中自动使用注销
  • 下面的代码真的适合我,请尝试让我知道。 @Override protected void onStop() { // TODO 自动生成的方法存根 Intent intent = new Intent(Intent.ACTION_MAIN);意图.addCategory(意图.CATEGORY_HOME);意图.setFlags(意图.FLAG_ACTIVITY_NEW_TASK);开始活动(意图);结束();超级.onStop(); }
  • 请阅读我的问题并再次发表评论.. 我想在理想情况下退出我的活动而不是停止。谢谢你的建议:)
  • 实际上,如果我使用您的代码,它会在每次活动更改时完成应用程序。我不想要这个..我想要应用程序是理想的还是处于非活动状态而不是它应该完成:(
  • 对不起..!当您只有一项活动时,它可以工作。您可以参考link
猜你喜欢
  • 2014-08-26
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多