完成android中的活动?

时间:2014-01-31 09:44:38

标签: android android-activity

我有一些活动。

Home Activity -> Activity 1 -> Activity 2 -> Activity 3 -> HomeActivity
                 finish();      finish();     finish();

Home Activity -> Activity 1 -> Activity 2 -> Activity 3 -> Activity 4 -> HomeActivity
                 finish();      finish();     finish();     finish();

所以现在当我在HomeActivity的最后一步时,如果我按下后退按钮,它会再次带我进入家庭活动。

如何在不打扰整个过程的情况下完成家庭活动?任何帮助表示赞赏。

6 个答案:

答案 0 :(得分:3)

在每项活动中使用此标志与您的意图

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

这不会再次启动家庭活动。它将使用您之前的Home Activity实例并将其置于顶部。

使用CLEAR_TOP如果正在启动的活动已经在当前任务中运行,那么代替启动该活动的新实例,将关闭其上的所有其他活动,并将此Intent传递给(现在在顶部)旧活动作为一个新的意图。

您可以参考此Link以了解有关标记的更多信息。

答案 1 :(得分:1)

在调用活动3时 - > HomeActivity                 光洁度()

实现以下代码:

Intent i = new Intent(Activity3.this,HomeActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();

答案 2 :(得分:1)

每当你通过defalut从一个活动切换到另一个活动onPause()将被调用,如果你不想要这个活动(在你的情况下是家庭活动),只需覆盖你的家庭活动中的onPause()并在onPause中调用finish() ()。

答案 3 :(得分:1)

好的,只要你给HomeActivity打电话,只需将其添加到Intent

即可
Intent i=new Intent(yourActivity.this,HomeActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();

这将清除之前存在的任何活动堆栈。希望它有所帮助。

答案 4 :(得分:0)

也在第一次家庭活动上完成呼叫。即在startactivity()调用完成后启动活动“活动1”时。

答案 5 :(得分:0)

Intent i = new Intent(Activity3.this,HomeActivity.class);
startActivity(i);
HomeActivity.this.finish();