繁体   English   中英

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

[英]Clear the stack activity on Back button pressed

我有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:点击后退出一系列活动

  2. 注销时,清除活动历史记录堆栈,阻止“后退”按钮打开仅登录的活动

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

所以

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

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

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM