activity的四种启动模式和生命周期

activity有四种启动模式

1  standard启动模式 默认启动模式,在没有显式指定的情况下activity默认此种启动模式    在这种启动模式下程序每次启动一个新的活动都会在返回栈中新建一个活动的实例,并将之入栈,存在于栈顶

2 singletop启动模式   在该启动模式下如果当前活动已经在栈顶,那么新建的活动不会去创建新的实例,而是使用在返回栈中已经存在的该活动(返回栈栈顶是当前活动)

3 singletask启动模式当活动的启动模式为singletask时新建一个活动会首先在返回栈中查找是否已经有次活动,如果返回栈中存在该活动的实例那么返回栈将该实例之上的所有活动的实例都弹栈,将该活动的实例置于栈顶.,如果返回栈中没有该活动的实例则会创建一个该活动的实例.

4 singleinstance启动模式  在当前启动模式下会给该activity创建一个单独的task用来存储activity的实例 例如当储存在abc三个活动的时候ac为standard启动模式,b为singleinstance启动模式  同过A->B->C的启动模式后通过gettaskid()方法获取每个活动实例的taskid发现AC在同一个栈中B在另外一个栈中,当点击返回按钮发现activity直接从C->A 这是因为ac在同一个栈中c弹栈后直接暴露栈A, B的实例在另外一个返回栈中当AC的返回栈空了之后会去显示B所在的返回栈的栈顶活动所以连续按三次返回按钮显示的页面为C->A->B



Android中有四大组件,活动(下文称之为Activity)是其中之一,Activity是Android中使用最频繁的组件,Activity的主要作用是显示UI内容并且实现与用户的相互交互,在Android中占据着重要的位置,研究Activity的生命周期对于Android的学习是最基础的一件事。Activity的启动的过程试衣间十分复杂的事情,在此我们从最简单的开始学习Activity的生命周期。在Activity生命周期中有七大方法依次分别为onCreate()、onStart()、onRestart()、onResume()、onPause()、onStop()、onDestory(),这七大方法分别管理者Activity的启动、暂停、退出等一系列的操作,通过对Activity生命周期的深入了解我们可以在Activity的生命周期中实现很多重要的操作,同时也会使得自己开发的软件性能更加的优秀,所以作为一个Android开发者Activity的生命周期的学习是一件十分重要的事情。

 

Activity的生命周期是一个系统调用的过程,当一个Activity第一次被创建的时候首先调用onCrea()方法,在此时Activity做一些初始化的事项,或者为后续的初始化工作做一些数据准备工作,故而在该方法中不宜做耗时操作。

当执行完onCrate方法之后会紧接着执行onStart方法,此时Activity是对用户不可见的状态,即没有获得焦点,当执行到onResume()方法的时候用户可以看到要展示的界面,此时Activity获得焦点处于栈顶,可以与用户互动。此时的Activity是处于活动状态的我们称之为Activity(活动)状态。处于此状态下的Activity接下来可能有一下几种状态:

1) 当另外一个Activity(称之为B_Activity)被启动并覆盖当前Activity(称之为A_Activity)或者A_Activity直接进入后台,A_Activity会先执行onPause()方法,此时Activity进入失去焦点的状态(可能依然可见),然后执行onStop方法,当前Activity进入停滞状态。此时如果A_Activit重新获得焦点,那么会依次调用onRestart、onStart、onResume方法。

2) 如果A_Activity在onResume状态时候被销毁,即点击了返回按钮,那么会直接执行onPause、onStop方法继而执行onDestory方法。

3) 当然如果A_Activity在onPause或者onStop状态被kill时A_Activity想要重新返回栈顶需要重新执行onCreate。


猜你喜欢

转载自blog.csdn.net/u014379448/article/details/52693462