Activity 即使从方法 Intent.FLAG_ACTIVITY_CLEAR_TOP 也不要从返回堆栈中清除

Activity Do not clear from back stack even From Method Intent.FLAG_ACTIVITY_CLEAR_TOP

我想移动到另一个 activity 但在我想清除所有其他 activity 之前。我知道方法 Intent.FLAG_ACTIVITY_CLEAR_TOP,但是当我在移动后返回并再次显示前一个 activity 时,它不起作用。 我的代码是

 Intent intent = new Intent(LoginActivity.this, WelcomeActivity.class);
 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 startActivity(intent);
 progressDialog.dismiss();

提前致谢

有时它不起作用你应该在你的代码中添加这一行

        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK | 
        Intent.FLAG_ACTIVITY_CLEAR_TASK);

它会对您有所帮助,希望您的问题能得到解决。 我在您的代码中添加了这一行,添加该行后您的代码将如下所示

 Intent intent = new Intent(LoginActivity.this, WelcomeActivity.class);
 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
    Intent.FLAG_ACTIVITY_CLEAR_TASK |
    Intent.FLAG_ACTIVITY_NEW_TASK);
 startActivity(intent);
 progressDialog.dismiss();

用上面的代码替换你的代码。

添加三个标志:

 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

CLEAR_TOP 只有当你有一个 Top 时才有效意味着只有一个 activity 所以你还需要添加 Intent。明确任务和意图。使用您的代码的新任务在下面的代码中看起来像这样

   intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
    Intent.FLAG_ACTIVITY_CLEAR_TASK |
    Intent.FLAG_ACTIVITY_NEW_TASK);