任何对象都有生命周期,activity也不例外。在activity的生命周期中总共包含了7个方法,从官方的SDK Docs里面的activity解释里面我们可以找到下面这张图:
下面我们就来详细说说这几个方法。
OnCreate()。当一个activity启动后首先调用的就是这个方法,在这个方法中一般初始化一些控件啊,资源啊,绑定数据等等工作。
Onstart()。当第一次对用户可见的时候执行该方法(有点类似于winform的onShown方法)。
OnResume ()。能够获得用户焦点的时候执行该方法。
OnPause()。启动另外一个Activity方法后,执行该方法。
Onstop()。当前Activity不可见(被其他activity完全遮挡住)后执行该方法。注意不是销毁,如果其他activity调用这个activity时则是执行OnRestart()方法而不是重新start()。
OnRestart()。activity在没有销毁的情况下重新显示。
OnDestroy()。被销毁时调用。何时会被销毁?1.手动调用Finish()方法时;2.系统资源不足时自动销毁
最后再来说一下task:什么是Task?当我们同时启动多个activity的时候,这个多个activity就是以栈的形式存放在task中。界面显示的Activity永远是在栈顶的那个activity。显示一个activity就是压入task栈中,back则是出栈。
都是些原理性的东西也不怎么好演示,知道这个意思就行了。重要的还是掌握前面的那七个方法,知道什么时候会被调用以便处理程序逻辑。