当从活动A转到B时,我想从堆栈中清除A:所以当用户按下活动B中的后退按钮时,应用程序退出。
Intent intent = new Intent(A.this, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
这些代码行不起作用 - 应用程序返回活动A.我也尝试使用标记Intent.FLAG_ACTIVITY_NEW_TASK
进行OR,结果相同。我其实也试过FLAG_ACTIVITY_NO_HISTORY
。
我正在为我的应用使用Android 2.2。
答案 0 :(得分:1)
调用startActivity()后调用finish()。它应该从堆栈中清除活动A.在代码中它看起来像这样:
Intent intent = new Intent(A.this, B.class);
startActivity(intent);
finish();
答案 1 :(得分:0)
两种解决方案:在你的B活动中:
@Override
public void onBackPressed() {
super.onBackPressed(); //not sure if this line is needed
System.exit(0);
}
或者更好:使用startActivityForResult开始您的活动,并实现您的A活动的onActivityResult方法:
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
finish();
}
答案 2 :(得分:0)
如果设置,则新活动不会保留在历史堆栈中。一旦用户离开它,活动就完成了。这也可以使用noHistory属性设置。
所以,你可以从你的
实现这个AndroidManifest.xml文件,
android:noHistory="true"