android一次登录系统

时间:2013-04-13 14:04:04

标签: android android-intent start-activity

我正在尝试设计一次性登录系统。

  • 在loginActivity上,用户输入我通过短信发送密码的电话号码

  • 在confirmActivity上,用户输入密码。

如果密码成功,我想finish确认活动和loginActivity。要从loginActivity执行此操作

Intent intent = new Intent(this, ConfirmationActivity.class);
startActivityForResult(intent, EXIT_CODE);

然后再次在loginActivity中调用

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if (resultCode == RESULT_OK) {
    if (requestCode == EXIT_CODE) {
      finish();
    }
  }
}

为了测试我的系统是否有效,在注册后,我点击后退按钮:

  • 预期行为:无法返回或关闭应用

  • 实际行为:返回loginActivity(注意它跳过了confirmActivity)

我希望一旦用户成功注册,他们就不应该再次访问confirmationActivity或loginActivity。当他们关闭我的应用程序并重新启动它时,它会跳过这两个页面并将用户直接带到主页。

注意:看起来永远不会调用onActivityResult方法。我在那里放了几个println调用,它们永远不会打印在LogCat上。

免责声明:上次我问了一个问题,并展示了一个代码片段,一位受访者分心,并开始谈论该片段而不是解决问题。这里的片段只是为了展示我的尝试。显然它还没有解决问题。谢谢。

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案可能是:

不是使用LoginActivity打开应用程序,而是创建一个名为FirstActivity的新应用程序。

在此活动中,您将检查是否在sharedPreferences中设置了标记。

  1. 如果此检查为true,则继续执行登录的活动。

  2. 如果此检查返回false,则启动LoginActivity。用户成功输入“秘密”后,您应该在sharedPreferences中设置一个标志。下次用户打开应用程序时,将设置sharedPreferences中的标志,您将知道该用户已经注册。

  3. 有任何问题吗?评论如下