我有一个登录屏幕,在成功登录后,将被带到LandingPage,从LandingPage,我导航到LastActivity。
如果我在LastActivity上按后退键,我的导航需要我回到LandingPage。所以我在启动LastActivity时没有使用finish()
来启动LastActivity。
单击LastActivity上的logOut按钮会将我带到LoginPage,但是如果我按下LoginPage上的后退按钮,则会将我带回LandingPage。这不是理想的行为。 这是我用来导航到活动的代码 -
Intent intent = new Intent(context, LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
startActivity(intent);
我使用这个标志错了吗?
编辑 - 活动流程是 - LoginActivity - >登陆页面 - > lastActivity 从上次活动退出时,应该转到loginActivity。
答案 0 :(得分:0)
你有什么(如果我理解正确的话):
LandingPage - > LastActivity - > LoginPage
如果您想要返回上一个活动并清除后台堆栈的顶部, FLAG_ACTIVITY_CLEAR_TOP
会很有帮助。但是,你正在做的是不小心让自己回到了后面堆栈底部的一个点。
修改:您是否在退出时尝试使用FLAG_ACTIVITY_CLEAR_TASK
?这应该清除堆栈中的所有其他活动。请注意,这应与FLAG_ACTIVITY_NEW_TASK
标志一起使用。