外观
如何实现一个类似微信的“返回首页”功能,清空中间所有 Activity?
标准回答
目标首页已在当前任务中时,可用 Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP 启动首页:清掉首页上方页面,并复用已有首页,通过 onNewIntent 接收参数。
**目标不存在或任务不同:**目标不存在会创建;跨任务时要额外确认任务选择。CLEAR_TASK + NEW_TASK 是清空目标任务后重新开始,不是返回现有首页的同一语义。
通俗例子
A 首页、B 列表、C 详情中,从 C 返回 A,可结合 CLEAR_TOP 与 SINGLE_TOP,复用 A 并在 onNewIntent 处理新参数。
示例代码
java
Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);易混淆点
CLEAR_TASK 通常配合 NEW_TASK,是清空目标任务后重新开始,语义不同。
参考资料
内容来源
- Android · AI Agent 知识手册 · 原条目
1.5.1