当你的项目在个人中心页面中点击退出登录返回登录页面时,若不加修改,当你点击返回按钮时,会发现又返回到了个人中心页面,这显然不合逻辑。怎么办??
首先了解下Task栈
Task栈
任务是指在执行特定作业时与用户交互的一系列 Activity。而任务栈,是用来存放Activity的。栈是后进先出的,第一个activity放进去后,再放进第二个acitivity,无疑,第二个activity会在第一个的上面,倘若是一直放,不取出来,那么最后一个activity在最上面,而第一个在底部。当一个acitivity启动另外一个activity时,新 activity 会在堆栈顶部,成为焦点。 而前一个 activity 则还在栈中,但是处于停止状态。activity 停止时,系统会保持其用户界面的当前状态。 用户按“返回”按钮时,当前 activity 会从堆栈顶部弹出(即被销毁),而前一个 activity 恢复执行(恢复其 UI 的前一状态)。
那如何去改变原来的出栈入栈顺序呢?首先我们启动一个新activity一般用Intent,这时候就要用到intent flag啦
Intent intent = new Intent(context, LoginActivity.class); //添加intent flag, 清空task栈并新建task栈, intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);
附上另一位博主整理的intent flag
https://blog.csdn.net/mjb00000/article/details/79386308