我正在尝试设计一次性登录系统。
在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上。
免责声明:上次我问了一个问题,并展示了一个代码片段,一位受访者分心,并开始谈论该片段而不是解决问题。这里的片段只是为了展示我的尝试。显然它还没有解决问题。谢谢。
答案 0 :(得分:1)
一种可能的解决方案可能是:
不是使用LoginActivity打开应用程序,而是创建一个名为FirstActivity的新应用程序。
在此活动中,您将检查是否在sharedPreferences中设置了标记。
如果此检查为true,则继续执行登录的活动。
如果此检查返回false,则启动LoginActivity。用户成功输入“秘密”后,您应该在sharedPreferences中设置一个标志。下次用户打开应用程序时,将设置sharedPreferences中的标志,您将知道该用户已经注册。
有任何问题吗?评论如下