moveTaskToBack
---------字面意思将任务向后移动
具体什么意思呢?
遇事不决看源码
/**
* 将包含此活动的任务移动到活动堆栈的后面。活动在任务中的顺序不变。
* 参数:
* Move the task containing this activity to the back of the activity
* stack. The activity's order within the task is unchanged.
*
*
* nonRoot–如果为false,则仅当活动是任务的根时才有效;如果为true,它将适用于任务中的任何活动。
* @param nonRoot If false then this only works if the activity is the root
* of a task; if true it will work for any activity in
* a task.
*
* 如果任务已移动(或已在后面),则返回true,否则返回false
* @return If the task was moved (or it was already at the
* back) true is returned, else false.
*/
public boolean moveTaskToBack(boolean nonRoot) {
return ActivityClient.getInstance().moveActivityTaskToBack(mToken, nonRoot);
}
moveTaskToBack调用后,task中activity的顺序不会发生变化,A启动B,B中调用此方法退到后台,重新启动应用会调用B中的onRestart-onStart-onResume方法,不会重新调用onCreate,而且在B中按下back键返回的还是A,这就是退到后台的功能。
在activity中按下back键,实际是调用了finish方法,应用退出。虽然应用已经退出,但进程没有被杀死,android中一个应用运行于独立的一个虚拟机实例中,所以在重新启动应用时一个类中的静态对象还保持着运行时的状态,注意在合适位置复位这些状态。
加入启动一个activity
后执行 moveTaskToBack
会发生什么
- 点击运行了moveTaskToBack()方法
- onPause()
- onStop()