完成所有之前的活动

新手上路,请多包涵

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

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

我已经尝试了几乎所有 FLAG_ACTIVITY 来实现这一目标。我也在 stackoverflow 中查看了一些答案,但无法解决问题。我的应用程序在 Android 1.6 上,所以无法使用 FLAG_ACTIVITY_CLEAR_TASK

有什么办法可以解决这个问题吗?

原文由 Tanmay Mandal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 355
2 个回答

利用:

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

这将清除主页顶部的所有活动。

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

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

原文由 DArkO 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 Kong Ken 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题