android - 从堆栈历史记录中清除特定活动
问题描述
假设我有名为 A、B、C、D 的活动。现在,考虑 A 已作为根活动启动,B 已从 A 启动,C 已从 B 启动,D 已从 C 启动。现在我有一个活动 D 中名为“成功”的按钮。如果假设,我在活动 D 中按下按钮“成功”,则应从历史堆栈中删除活动 C 并转到活动 B,但在从活动中按下返回键D 应该显示活动 C 而不是 B 并从堆栈中清除 D。请问谁能帮我解决这个问题?
解决方案
当您单击 Success 按钮时,您可以使用以下代码行打开您的 B 活动:
Intent d_intent = new Intent(D.this, B.class);
d_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
d_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(d_intent);
finish();
这里 Activity B 将从后面的堆栈而不是新实例启动,因为Intent.FLAG_ACTIVITY_CLEAR_TOP
并Intent.FLAG_ACTIVITY_NEW_TASK
清除堆栈并使其成为顶部。因此,当我们按下后退按钮时,整个应用程序将被终止。在 Back press 上,您只需调用
finish();
希望它会帮助你。
推荐阅读
- java - 如何通过反射获取函数的java类型注释
- bash - 从 PL/SQL 开发人员和 SQL*plus 调用时,存储过程的结果不同
- python - django - CBV - 从 url 传入多个值
- amazon-web-services - CodeBuild 使用 ACL 将构建工件上传到 S3
- python-3.x - 在python中替换字符串中的特定值
- validation - Vuetify 默认规则实现
- angular - 如何在角度 8 中使用 mat-table 显示动态按钮组(列作为按钮)
- c - 有什么作用??在 gdb 回溯中的意思以及如何获取实际的堆栈帧?
- selenium - Selenium:将 Firefox webdriver 配置为不在测试模式下运行
- python - 如何在 Python Plotly 中显示时间戳 x 轴