gpt4 book ai didi

android - Android中如何控制activity栈/清除activity栈

转载 作者:行者123 更新时间:2023-11-29 16:21:27 25 4
gpt4 key购买 nike

我有一个如下所示的应用程序(Home 是启动 Activity ):

D
C
B
A
Home

我的流程如下:

用户从 Home 开始 Activity A,它流向 BC。当用户离开 Activity C 时,我希望销毁 ABC。也就是说,如果用户在 Activity D 中按 BACK,它将返回到 Home

用户必须能够通过activityABC正常控制程序流程。因此,如果他们在 Activity C 中按下后退按钮,它将返回到 Activity B

我查看了诸如 CLEAR_TOPNEW_TASK 之类的 Intent 标志,但它们似乎都没有按照我的要求进行。

如果有任何帮助,我将不胜感激!

最佳答案

也许您正在寻找FLAG_ACTIVITY_TASK_ON_HOME ?不过它需要 API 级别 11 :(

对于 API 级别 <11,可以这样做:

启动 Activity B 和 C 时,使用 startActivityForResult()。开始 Activity D 时,请执行以下操作:

startActivity(D);
setResult(KILL_YOURSELF); //KILL_YOURSELF is some arbitrary int that you use to identify that the other activities should exit
finish(); //finish the activity

这将终止 Activity C。然后在 Activity A 和 B 中,像这样覆盖 onActivityResult:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

if(resultCode == KILL_YOURSELF) {
setResult(KILL_YOURSELF);
finish();
}
}

因此 Activity B 将完成,这又将触发 A 中的 onActivityResult,因此它也将完成。

关于android - Android中如何控制activity栈/清除activity栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7082583/

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