首页 文章

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

提问于
浏览
3

我有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,这导致用户没有时间点击后退按钮,因为活动已经存在于堆 .

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

我曾试图在意图中使用旗帜,但这对我不起作用 .

我也提到过这个

edit I got the answer: 所以很少有朋友在这里回答我使用了这个 Intent.FLAG_ACTIVITY_CLEAR_TOP

所以

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

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

4 回答

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

    你必须在每个意图之后使用finish(),所以这个活动将会关闭 .

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

  • 0

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

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

    你必须在每个意图之后使用finish(),所以这个活动将会关闭 .

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

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

    你必须检查此链接中的链接是否使用子活动作为选项卡的主要活动 .

相关问题