如何从活动backstack中删除活动?

时间:2014-01-15 12:40:08

标签: android android-activity back-stack

我有两个活动活动A和活动B.当我点击活动A中的按钮时,活动B开始。现在,当我按下活动B的后退按钮时,活动A重新启动。但是,当按下活动B中的后退按钮时,我想退出应用程序。我试过用这个但没有成功

Intent intent=new Intent(ActivityA.this, ActivityB.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

提前致谢

4 个答案:

答案 0 :(得分:1)

一旦你开始ActivityA

,你需要完成ActivityB
Intent intent=new Intent(ActivityA.this, ActivityB.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

答案 1 :(得分:1)

启动新活动后调用finish() - 这将关闭调用Activity:

startActivity(new Intent(ActivityA.this, ActivityB.class));

//calling finish() closes current Activity
finish();

详细了解活动生命周期herehere

答案 2 :(得分:0)

在startActivity(intent)之后调用finish()。

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

答案 3 :(得分:0)

Intent.FLAG_ACTIVITY_CLEAR_TOP不适合您的情况。在您的代码中,ActivityA将再次重新构建。在TaskStack中有两个ActivityA实例。删除addFlag。

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