我有一些活动。
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
的最后一步时,如果我按下后退按钮,它会再次带我进入家庭活动。
如何在不打扰整个过程的情况下完成家庭活动?任何帮助表示赞赏。
答案 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();