Android 清除活动堆栈
示例
有时您可能想在从后堆栈中删除以前的活动时开始一个新活动,因此后退按钮不会将您带回到这些活动。这样的一个示例可能是在“登录”活动上启动一个应用程序,带您进入应用程序的“主要”活动,但是在注销时,您希望直接回到“登录”而没有机会返回。在这种情况下,您可以设置FLAG_ACTIVITY_CLEAR_TOP意图的标志,这意味着如果正在启动的活动已经在当前任务中运行(LoginActivity),则代替启动该活动的新实例,将所有其他活动置于该活动的顶部它将被关闭,并且该意图将作为新的意图传递到(现在位于顶部的)旧活动。
Intent intent = new Intent(getApplicationContext(), LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);
它也可以使用该标志FLAG_ACTIVITY_NEW_TASK沿FLAG_ACTIVITY_CLEAR_TASK,如果你想清除后堆栈上的所有活动:
Intent intent = new Intent(getApplicationContext(), LoginActivity.class); //关闭所有活动,清除后堆栈。 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent);