清除activity栈中的所有activity:
开发的时候我们可能会碰到这样的需求,当我们在app设置界面设置之后,需要确保点击返回,不会跳回到上一级界面(登陆界面一般也会有这样的需求),那我们该如何实现呢?
解决方案:
其实activity的存储形式是一个栈,这部分讲解可以参考这位大佬的这篇博客,博客链接:https://blog.youkuaiyun.com/weixin_43222324/article/details/117438883。
那么我们要做的就是将栈中的所有activity都出栈,其中Intent给我们提供了一个超简便的方法setFlags,其中的FLAG_ACTIVITY_CLEAR_TASK就是一个清除栈里所有内容的指令。
实例代码:
Intent intent =new Intent(SettingActivity.this,HomeActivity.class).setFlags( Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK );