按下后退按钮清除堆栈活动

时间:2012-11-15 06:55:50

标签: java android

我有4项活动:

Menu -> screen 1
Menu items -> screen 2
Detailed View -> screen 3
Ordered item -> screen 4

在菜单活动(屏幕1)中,我有一个按钮点击它进入MenuItems活动(scrren 2,即List视图),点击列表中的任何项目查看此活动中的相应项目详细视图(屏幕3)我有一个名为有序视图的按钮,onlclick它会转到Ordered item(屏幕4),在这个scrren 4我有一个按钮,它将进入屏幕2。

这是流程

Screen 1 ->screen 2->screen 3->screen 4->screen 2

问题:现在当我在屏幕2中点击后面进行基本流程后,它进入屏幕4并再次点击它返回到屏幕3,这导致用户自从活动以来没有时间点击后退按钮已存在于堆栈中。

如何处理这个我的意思是后退按钮导航。

我曾尝试在意图中使用旗帜,但它对我不起作用。

我也提到了这个

  1. Android: Remove a series of Activites on clicking back

  2. On logout, clear Activity history stack, preventing "back" button from opening logged-in-only Activites

  3. 编辑我得到了答案: 所以很少有朋友在这里回答我用过这个 的 Intent.FLAG_ACTIVITY_CLEAR_TOP

    所以

    screen 1->screen 2->screen 3-> screen 4->screen 2
    

    因此,在屏幕4中,我必须设置此标志,以便清除该活动之上的所有活动。

4 个答案:

答案 0 :(得分:6)

Intent intent= new Intent(this, screen 1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

答案 1 :(得分:1)

你必须在每次意图之后使用finish(),这样这个活动就会结束。

你可以从4活动到2活动的意图功能。也可以在它之后使用完成。

答案 2 :(得分:1)

您要做的是将屏幕2设置为在清单中具有launchMode singleTop。这可确保您的堆栈中一次只有一个这样的活动。您还希望在意​​图中设置清除顶部标记。

Intent a = new Intent(this,A.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);

答案 3 :(得分:0)

你必须在每次意图之后使用finish(),这样这个活动就会结束。

你可以从4活动到2活动的意图功能。也可以在它之后使用完成。

http://nanostuffs.com/Blog/?p=607

你必须检查此链接中的链接是否使用子活动作为标签的主要活动。