0

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

  • 在 loginActivity 中,用户输入一个电话号码,我通过 SMS 向该电话号码发送密码

  • 在确认活动中,用户输入密码。

如果密码成功,我想finish同时确认活动和登录活动。要从 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(注意跳过了confirmationActivity)

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

注意:看起来该onActivityResult方法从未被调用过。我在那里打了几个 println 调用,但它们从未打印在 LogCat 上。

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

4

1 回答 1

1

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

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

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

  1. 如果此检查为真,则继续您的登录活动。

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

任何问题?在下面发表评论

于 2013-04-13T14:12:02.953 回答