android activity的生命周期和启动模式
activity是android开发的基本中的基本每一个项目都会有activity。activity有自己的生命周期,在网上有很多博客和资料,在这里我也只是印证一下。
一个activity:
在打开activity的时候会走下面三个方法
onCreate
onStart
onResume
在单击回退activity时候
onPause
onStop
onDestroy
在点击home键的时候
onPause
onStop
再次打开app
onRestart
onStart
onResume
当程序崩溃的时候,不走生命周期
在有两个activity的时候,把第一个activity名称暂定位frist,第二个为second
当启动第一个activity
frist: onCreate
frist: onStart
frist: onResume
当打开第二个activity
frist: onPause
second: onCreate
second: onStart
second: onResume
frist: onStop
在第二个activity回退时
second: onPause
frist: onRestart
frist: onStart
frist: onResume
second: onStop
second: onDestroy
在第二个activity点击home
second: onPause
second: onStop
再次打开app
second: onRestart
second: onStart
second: onResume
activity的启动模式
standard:标准模式,每次启动一个Activity都会重新建一个新的实例,不管这个实例是否已经存在
singleTop:栈顶复用模式,如果新Activity已经位于任务站的栈顶,那么次Activity不会被重新创建,同时它的onNewIntent方法会被调用,通过此方法的参数我们可以去取当前请求的信息.
singleTask:栈内复用模式,这是一种单实例模式,在这种模式下,只要Activity在一个栈中存在,那么多次启动此Activity都不会重新创建实例,和singleTop一样,系统也会调用其onNewIntent
singleIntance:单实例模式,一种加强的singleTask模式,除了具有singleTask模式的所有特性,还具有此种模式的Activity只能单独地位于任务栈中,由于栈内复用的特性,后续的请求均不会创建新的Activity,除非这个任务栈被系统销毁
github地址 https://github.com/tempest1/AndroidActivity