使用FLAG_ACTIVITY_CLEAR_TOP实例化已经以finish()结束的活动;

时间:2013-07-16 16:24:35

标签: android android-intent

我有一个登录屏幕,在成功登录后,将被带到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。

1 个答案:

答案 0 :(得分:0)

你有什么(如果我理解正确的话):

LandingPage - > LastActivity - > LoginPage

如果您想要返回上一个活动并清除后台堆栈的顶部,

FLAG_ACTIVITY_CLEAR_TOP会很有帮助。但是,你正在做的是不小心让自己回到了后面堆栈底部的一个点。

修改:您是否在退出时尝试使用FLAG_ACTIVITY_CLEAR_TASK?这应该清除堆栈中的所有其他活动。请注意,这应与FLAG_ACTIVITY_NEW_TASK标志一起使用。