从 BackStack (Flag_Activity_no_history) 中删除 Activity 不起作用
Removing Activity from BackStack (Flag_Activity_no_history) does not work
我的 MainActivity 中有一个“开始”按钮。如果单击此按钮,我将转到下一个 Activity (InfoActivity)。现在,如果单击按钮,我想从 BackStack 中删除 MainActivity。我试过这个:
View.OnClickListener startButtonListener = new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, InfoActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
}
};
但这并没有从 BackStack 中删除 MainActivity,而是从 BackStack 中删除了 InfoActivity。
我知道我可以将标志插入 AndroidManifest。但这对我来说是不可能的,因为如果我从 MainActivity 转到 PreferencesActivity 并使用 AndroidManifest 中的标志,如果我 return 从 PreferencesActivity 回到 MainActivity.
所以我想从 BackStack 中删除 MainActivity,如果我点击开始按钮。
添加完成();
像这样:
View.OnClickListener startButtonListener = new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, InfoActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
this.finish();
}
};
如前所述,您应该在您不想在 MainActivity 上跟踪的 activity 上使用 Intent.FLAG_ACTIVITY_NO_HISTORY
。
另一种方法是 Intent.FLAG_ACTIVITY_CLEAR_TOP
在您的信息 activity 上,这将清除整个历史记录(甚至是 MainActivity 之前的内容)
我的 MainActivity 中有一个“开始”按钮。如果单击此按钮,我将转到下一个 Activity (InfoActivity)。现在,如果单击按钮,我想从 BackStack 中删除 MainActivity。我试过这个:
View.OnClickListener startButtonListener = new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, InfoActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
}
};
但这并没有从 BackStack 中删除 MainActivity,而是从 BackStack 中删除了 InfoActivity。
我知道我可以将标志插入 AndroidManifest。但这对我来说是不可能的,因为如果我从 MainActivity 转到 PreferencesActivity 并使用 AndroidManifest 中的标志,如果我 return 从 PreferencesActivity 回到 MainActivity.
所以我想从 BackStack 中删除 MainActivity,如果我点击开始按钮。
添加完成(); 像这样:
View.OnClickListener startButtonListener = new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, InfoActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
this.finish();
}
};
如前所述,您应该在您不想在 MainActivity 上跟踪的 activity 上使用 Intent.FLAG_ACTIVITY_NO_HISTORY
。
另一种方法是 Intent.FLAG_ACTIVITY_CLEAR_TOP
在您的信息 activity 上,这将清除整个历史记录(甚至是 MainActivity 之前的内容)