我在做应用时遇到一个问题。就是在启动主页面时须要预先载入一些数据。我是在一个载入页中处理完这些数据然后再转到主页面。但当我在主页面中按返回键时,系统会返回载入页面。我不希望载入页在使用完之后还被保留在任务中。
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类介绍里找自己须要的标志。