从堆栈中删除特定的先前活动

时间:2014-03-28 09:05:54

标签: java android android-activity stack

在我的应用程序中有一些活动,但在特定点上有堆栈 其他活动 - > A - > B - >纽瓦 现在,我有一些奇怪的事情要做: - 如果我在B,我按下后退按钮,我将返回A. - 如果我在newA并按回来,我不想看到A和B,但返回活动堆栈(已经达到跳过B)

1 个答案:

答案 0 :(得分:1)

使用FLAG_ACTIVITY_CLEAR_TOP这将解决您的问题

Android docx

如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在在最前面)作为新意图的旧活动。

例如,考虑一个由活动组成的任务:A,B,C,D。如果D调用带有解析为活动B组件的Intent的startActivity(),那么C和D将完成并且B接收给定的Intent,导致堆栈现在为:A,B。

一样使用它
Intent intent = new Intent(getApplicationContext(),
    yourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

Activity with Flag FLAG_ACTIVITY_CLEAR_TOP (android)