使Activity关闭后不执行onDestroy()

重写finish()方法:
@Override
public void finish() {
     //super.finish();
     moveTaskToBack( true ); //设置该activity永不过期,即不执行onDestroy()
}  

调用moveTaskToBack(true),这样只有在第一次启动的时候会执行onCreate()。以后(只要进程不死掉)都不会执行onCreate()


///////////////////////////////////////////////////////////////////////////////////

moveTaskToBack()方法:在activity中调用 moveTaskToBack (boolean nonRoot)方法即可将activity 退到后台,注意不是finish()退出。

参数说明:

参数为false——代表只有当前activity是task根,指应用启动的第一个activity时,才有效;

参数为true——则忽略这个限制,任何activity都可以有效。

说明:判断Activity是否是task根,Activity本身给出了相关方法:isTaskRoot()

 

moveTaskToBack调用后,task中activity的顺序不会发生变化,例如A启动B,B中调用此方法退到后台,重新启动应用会调用B中的onRestart-onStart-onResume方法,不会重新调用onCreate,而且在B中按下back键返回的还是A,这就是退到后台的功能。

扫描二维码关注公众号,回复: 1558708 查看本文章

猜你喜欢

转载自blog.csdn.net/tectrol/article/details/78845774