我希望按下按钮清除活动堆栈,但不要留下所有活动。我想将启动器活动留在堆栈中(因此,如果按下后退按钮转到HomeScreen)。
是否:
Intent launch = new Intent(context, LnewActivity.class);
launch.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
清除所有活动,还是将启动器活动留在堆栈中?文档中没有明确说明。
答案 0 :(得分:0)
实际上它确实将启动器Activity留在了堆栈中!
Intent intent = new Intent(this, Search.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
答案 1 :(得分:0)
实际上Intent.FLAG_ACTIVITY_CLEAR_TOP
会在堆栈中搜索已经创建的Activity
实例,并将所有Activities
关闭到此页面。如果堆栈中没有它的实例,它将不会清除任何内容。
也许你正在寻找其他标志:
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);