android在mainfest中给Activity添加一个属性 android:theme="@android:style/Theme.Dialog",可以使Activity悬浮在其它窗口上面,在布局中可以设置activity的大小,当点击悬浮Activity边缘以外区域时,Activity会消失,观察消失时其生命周期会发现执行了finish()方法从而执行了onDestroy方法。有时我们只是需要将Activity隐藏,并不销毁,此时可以重写finish方法,如下:
/**
* 判斷是否销毁Activity
*/
@Override
public void finish() {
if (isRealFinish) {
super.finish();
this.moveTaskToBack(true);
} else {
this.moveTaskToBack(false);
}
isRealFinish = false;
}
这里的moveTaskToBack()是进栈,moveTaskToBack()就可以不销毁的把Activity放到后台去。