启动另一个时完成来电活动

时间:2014-07-16 08:49:18

标签: android android-activity back-button activity-finish

enter image description here 就像在图中我想在开始另一个活动时关闭所有先前的活动。我用旗帜试了很多,但它似乎没有用。例如。在活动A上启动活动B时,我调用了

Intent intent = new Intent(this, ActivityB.class);
intent = intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent = intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

Intent intent = new Intent(this, ActivityB.class);
intent = intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent = intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

但是在活动A中没有调用finish()方法。 我有一个名为Navigation的全局类,它扩展Activity以在一个类中处理这样的事情。所有橙色活动都扩展了我的导航,蓝色活动不会扩展。 BackButton行为似乎工作正常,但在启动另一个活动时不会调用finish()方法。我是否必须明确呼叫finish()?哪里?如果我在onStop中执行此操作,则在重新启动应用时,我无法返回活动X.

2 个答案:

答案 0 :(得分:0)

之后

startActivity(intent);

简单地说

finish();

您要完成的活动。 只有在ie时才需要标志。你想清除活动堆栈

答案 1 :(得分:0)

你做得对,只需在代码中添加finish():

Intent intent = new Intent(this, ActivityB.class);
intent = intent = intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();