目前很多应用会有这么一个需求,在某一个界面当用户按下返回键的时候,类似于按下Home键,让用于退到后台,而不是杀死当前应用,类似于QQ、微信的做法。要实现这个功能,Google官方给我们提供了方法:
大致的意思就是说: moveTaskToBack调用后,将会把包含该activity的任务移动到activity堆栈中,在堆栈中activity的顺序不会发生变化,例如A启动B,B中调用此方法退到后台,重新启动应用会调用B中的onRestart-onStart-onResume方法,不会重新调用onCreate,而且在B中按下back键返回的还是A,这就是退到后台的功能。
moveTaskToBack(boolean nonRoot)。下面是官方的API,对这个方法的说明:
/**
* Move the task containing this activity to the back of the activity
* stack. The activity's order within the task is unchanged.
*
* @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.
*
* @return If the task was moved (or it was already at the
* back) true is returned, else false.
*/
大致的意思就是说: moveTaskToBack调用后,将会把包含该activity的任务移动到activity堆栈中,在堆栈中activity的顺序不会发生变化,例如A启动B,B中调用此方法退到后台,重新启动应用会调用B中的onRestart-onStart-onResume方法,不会重新调用onCreate,而且在B中按下back键返回的还是A,这就是退到后台的功能。
如果形参nonRoot是false:当前的activity是task的根,才会起作用,也就是说不调用这个方法的时候,在点击返回键的时候,就会退出应用。
如果形参nonRoot是true:task中的任何activity都会起作用,也就是说上述限制不起作用。
返回结果:如果该activity已经移动到task中或者该activity已经返回,则会返回true,否则则会返回false。