2012-12-02 59 views
2

我有以下活动(想象Pinterest的应用程序):登录和注册屏幕

WellcomeActivity有两个按钮 - 注册和登录

LogInActivity你WellcomeActivity

来这里

SignUpActivity你来自这里WellcomeActivity

MainActivity - 您在登录或注册后来到这里。

当用户注册或登录时,我在LogInActivitySignUpActivity或开始拨打电话finish()。但WellcomeActivity仍然在堆栈中,所以当我按下“返回”按钮时,我又在WellcomeActivity中。

当我开始LogInActivitySignUpActivity时,我无法拨打finish(),因为如果用户决定返回,他将退出应用程序。

现在,我如何设计活动转换以使Pinterest类逻辑?

+0

好的问题,接下来的几天我会面临同样的问题。我认为这是可笑的清单中的一个标志隐藏活动从活动堆栈 – rekire

+1

当你启动'MainActivity'意图添加此标志'intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);'希望它会帮助你 –

+0

@MMohsinNaeem CLEAR_TASK,我想。它仅适用于API> 11。 –

回答

0

参考this answer

从WelcomeActivity,而不是startActivity(),调用startActivityForResult()在WelcomeActivity的onActivityResult()开始LoginActivity或SignupActivity.Then时,你调用finish()如果发送resultCode为1

现在,当注册登录成功时,您在登录/注册活动中设置结果(1),它将调用结果码为1的WelcomeActivity的onActivityResult(),并完成它()。如果登录或注册失败,则调用setResult(0)。

也在setResult(1)之后,您使用startActivity()来调用MainActivity。

0

我有一个类似的应用程序。我所做的就是创建一个共享首选项文件,它已经“登录”和“注册”为字段。当他们注册或登录时,我会将此值设为真。

在应用程序中,当他们返回到主活动时,我检查onActivityResult,如果他们已注册或登录,我完成()该活动。

这样,当他们返回登录或注册之前,它不会关闭它。我希望你明白。