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

posted @ 2018-04-01 21:55  坎坷人生0  阅读(111)  评论(0编辑  收藏  举报