完成之前的所有活动

2022-08-31 04:36:59

我的应用程序具有以屏幕:

Home->screen 1->screen 2->screen 3->screen 4->screen 5

现在我在每个屏幕中都有一个通用按钮log out

(Home/ screen 1 / screen 2 /screen 3/ screen 4 / screen 5)

我希望当用户单击注销按钮(从任何屏幕)时,所有屏幕都将完成,并且将打开一个新屏幕。Log in

我几乎都尝试过实现这一目标。我也在stackoverflow中给出了一些答案,但无法解决问题。我的应用程序在Android 1.6上,因此无法使用FLAG_ACTIVITYFLAG_ACTIVITY_CLEAR_TASK

有没有办法解决这个问题?


答案 1

用:

Intent intent = new Intent(getApplicationContext(), Home.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

这将清除家庭之上的所有活动。

假设您在用户登录并创建主页时正在完成登录屏幕,然后从1到5的所有屏幕都位于该屏幕之上。我发布的代码将返回到主屏幕,完成所有其他活动。您可以在意图中添加额外的内容,并在主屏幕活动中读取并完成它(也许从那里再次启动登录屏幕或其他内容)。

我不确定,但您也可以尝试使用此标志登录。我不知道在这种情况下如何排序活动。所以不知道它是否会清除您正在使用的屏幕下方的屏幕,包括您当前所在的屏幕,但这绝对是要走的路。


答案 2

您可以尝试 。它将完全清除所有以前的活动并开始新活动。Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK


推荐