我在做应用时遇到一个问题,就是在启动主页面时需要预先加载一些数据,我是在一个加载页中处理完这些数据然后再转到主页面,但当我在主页面中按返回键时,系统会返回加载页面。我不希望加载页在使用完之后还被保留在任务中。
Android的官方文档中这样描述的返回栈、任务和activity的默认关系:
1:当从Activity A中启动Activity B时,Activity A停止,但是保存了它的状态(比如,滚动位置和表单中的文字)。如果当用户在Activity B中按了返回键,Activity A会恢复之前的状态;
2:当用户按了Home键时,当前的activity停止,并且它的任务被放到后台。系统会保存任务中每一个activity的状态,如果用户再次启动app,任务会再次回到前台并且展示栈顶的activity;
3:如果用户点击BACK键,当前的activity会从栈中弹出并且被销毁。如果activity被销毁,则系统不会保存它的状态;
4:Activity可以被实例化很多次,即使是从不同的任务中。
当然你可以改变它默认的状态,在manifest文件或者在启动Activity中的intent中加入一个标志。
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);//新启动的activity将不会被保存在历史栈中
再介绍一个常用的标志:
FLAG_ACTIVITY_NEW_TASK:新启动的activity会在这个历史栈中开启一个新的任务
大家可以在文档中Intent类介绍里找自己需要的标志。