退出程序的时候,清空Activity有多种方法,我比较常用的做法是:
1)定义一个BaseAppManager管理Activity的添加删除的管理类,在Base基类的Activity中添加BaseAppManager.getBaseAppManager().addActivity(this);这样在退出Activity时候直接调用BaseAppManager中的clear(),清空list中的所有的Activity.
2)还有一种方法使主MainActivity作为根Activity,每次跳转Activity的时候,带上FLAG_ACTIVITY_CLEAR_TASK这个标志,那么这个标志将会清除之前所有已经打开的activity.设置了该flag(FLAG_ACTIVITY_CLEAR_TASK)会在新的activity启动之前,释放掉当前栈中的所有activity,因此新activity就成为了空工作栈中唯一的activity。当然,要和FLAG_ACTIVITY_NEW_TASK结合使用才有效(不过不加也可以)。
例如:在B中启动C
Intent intent=new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClass(B.this,C.class);
startActivity(intent);
最后退出程序的时候,直接只需要清除MainActivity即可