gpt4 book ai didi

android - 清除任务中的所有 Activity ?

转载 作者:IT王子 更新时间:2023-10-28 23:54:37 25 4
gpt4 key购买 nike

我有一个启动屏幕 Activity ,然后是一个登录 Activity 。我的历史堆栈如下所示:

SplashActivity
LoginActivity

当用户通过LoginActivity成功登录后,我想启动WelcomeActivity,但是清空整个堆栈:

SplashActivity
LoginActivity // launches WelcomeActivity ->
WelcomeActivity

// but now all three are in the history stack, while I only
// want WelcomeActivity in the stack at this point.

我可以使用一些标志来做到这一点吗?

// LoginActivity.java
Intent intent = new Intent(this, WelcomeActivity.class);
intent.addFlag(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();

不确定使用 FLAG_ACTIVITY_CLEAR_TASK 是否会清除我任务中的所有 Activity 。我可以通过使用 startActivityForResult() 调用展开堆栈来“手动”执行此操作,但会更脆弱并且需要维护更多代码。

谢谢

最佳答案

是的,应该可以正常工作。你可以使用:

  • FLAG_ACTIVITY_CLEAR_TOP
  • FLAG_ACTIVITY_SINGLE_TOP
  • FLAG_ACTIVITY_CLEAR_TASK
  • FLAG_ACTIVITY_NEW_TASK

这确保如果一个实例已经在运行并且不是顶部,那么它上面的任何东西都将被清除并被使用,而不是启动一个新实例(这在你进行欢迎 Activity 后很有用 -> Activity A 然后你想从 A 返回 Welcome,但额外的标志不应该影响你上面的情况)。

关于android - 清除任务中的所有 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5979171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com