14.清空栈的使用

参考:https://www.cnblogs.com/itrena/p/7434174.html
https://blog.csdn.net/csdn_of_coder/article/details/76343031

1.用FLAG_ACTIVITY_CLEAR_TOP 实现清空Activity栈:

能够清空此栈之前的Activity,清空在即将跳转的activity之前的栈,所以此activity要设置成singline模式。
跳转时候把他之前的栈都清掉

   /**
     * 清空跳转Activity之前的栈
     *
     * @param clz
     */
    public void startClearTopActivity(Class clz) {
        startActivity(new Intent(BaseActivity.this, clz).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    }

2.FLAG_ACTIVITY_NO_HISTORY

在AndroidManifest.xml设置Activity的属性noHistory = true,
当启动新的Activity后之前的Activity不会保存在ActivityTask中,可以满足你的需求。

 

 Intent.setFlags(FLAG_ACTIVITY_NO_HISTORY)

栈中完全不存放任何activity,每一个都是新生成的。

3.FLAG_ACTIVITY_CLEAR_TASK:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

这个标记,将会导致任何用来放置该activity的已经存在的task里面的已经存在的activity先清空,然后该activity再在该task中启动,也就是说,这个新启动的activity变为了这个空task的根activity.所有老的activity都结束掉。该标志必须和FLAG_ACTIVITY_NEW_TASK一起使用。

你可能感兴趣的:(14.清空栈的使用)