三次活动结束后如何返回主要活动?

时间:2011-10-25 23:23:47

标签: android

我的应用有四项活动; MainActivity,ListActivity1(L1),ListActivity2(L2),ListActivity3(L3)。从Main,用户通过单击按钮下降到L1。在L1中选择项目后,用户在L2中选择项目后进入L2然后L3。在L3中,当选择项目时,启动是/否 - 吐司。如果用户选择“否”,则用户停留在L3上。如果用户选择“是”,则用户返回Main。

以下是问题:如果用户选择“是”将他带到Main并按Back按钮,则返回L3。我想要的是,如果用户已经走到L3,选择是并返回到Main,按Back应该将他带到主屏幕。即我想删除L3的“后跟踪”。

我如何做到这一点?

(Main和ListActivities使用startActivity(new Intent(foo, Bar.class))

启动新活动

2 个答案:

答案 0 :(得分:2)

当选择是时,你可以这样做:

Intent intent=new Intent(context,MainActivity.class);    
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                    
startActivity(intent);

这将清除活动堆栈,以便删除L1,L2和L3,并使用新意图启动现有的MainActivity。

答案 1 :(得分:0)

你可以做的是当你启动L2和L3时,你用startAcitiv

启动它
  

startActivityForResult(intent,REQUEST_CODE);

您可以在L1和L2活动中定义结果代码。在L3中,当用户单击“是”时,在完成活动之前,您将调用

  

的setResult(USER_CLICKED_YES);

您可以将USER_CLICKED_YES定义为L2知道的整数。

在L2中,您可以实现onActivityResult(),并在方法中检查L3的结果是否为USER_CLICKED_YEs,如果是,则完成L2,如果没有,则不执行任何操作。

通过这种方式,您可以构建一个“整理活动链”,以便活动可以自行完成,直到达到您不想完成的活动。