这次项目里面用到了android的moveTasktoBack()这个方法,这个方法是什么意思呢?
其实很简单,这个方法就是说让这个Task(进程activity栈)在后台去运行,这就是我们明白了我们退出了QQ,微信,新浪微博这种超级APP,但是他仍然可以接受网络中的消息,而且在启动的时候也没有重新启动了,为什么呢?就是这个应用根本就没有退出执行,他只是类似与最小化了(和windows一样),所以我们平时杂开发的时候可以使用这个方法,不让我们的应用退出。
对个方法说下用法:调入参数为bool类型,一般都是使用true,表示在所有的activity都是可以执行这个方法的,如果是false的话,就是root的activity的才能使用这个方法退出到后台执行。
我们通常又在什么时候用这个方法呢?一般就是用户在按下手机上返回键的时候,我们捕捉onKeyDown方法,使用这个方法,给出示例:
public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK) { this.moveTaskToBack(true); } return super.onKeyDown(keyCode, event); }
假设activity1是Tab中的集成的activity,我们在activity1调用finish方法之后,其实这个方法会传递到TabActivity中,TabActivit再去执行这个方法,也就是说,finsh()这个方法是传递到Tab去执行的,所以,当我们不复写Tab中的finish方法,这个方法是无法奏效的,我们要复写Tab中的onfinish方法:
public void finish() { this.moveTaskToBack(true); }也就是说,这个方法是层层调用的,在activity1中使用finish方法或者return(super.onKeyDown(keyCode, event));方法,这个方法都会转到Tab中去执行。所以大家在今后的项目中一定要记得这样写,才能让app最小化哦。