`
public void SignOut(View view) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
`我有一个安卓应用程序。 Activity 就像-> A->B->C->D->E。 Activity A 有登录页面。因此,在移动到下一个 Activity ,即 B 时,我没有完成 Activity A。堆栈增长如下:A、B、C、D,然后 Activity D 完成,E 开始。在 Activity E 中,我有一个退出按钮。 到目前为止,我的筹码是:A、B、C、E。按退出时,弹出 E。此时我想清除 Activity 堆栈并开始我的第一个 Activity ,即要求登录的 A。我无法做到这一点。注销后我的堆栈变为 A、B、C、A。我希望堆栈仅为 A。请帮忙。提前致谢。
最佳答案
我已经解决了这个问题。
连同上面提到的代码,在我的主要 Activity 类中,在 onRestart() 函数中,我添加了代码:
getIntent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这确保了无论何时调用此 Activity ,就像我的情况一样,它都是从上一个 Activity 调用的。此时,如果下一个 Activity 完全覆盖它,它已经处于 onPaused() 状态,然后处于 onStop() 状态,并且它将再次重新启动。此时,清除 Activity A 的后堆栈(即 A 顶部的所有 Activity ),如果堆栈中有任何内容以重新开始。
关于android - 在android中操作任务返回栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51122751/