android 四大组件之一Activity->

        Activity又称做活动,它是一种可以包含用户界面的组件,它主要用于和用户交互。一个应用程序中可以有0个或多个Activity。

        Android 是使用任务(Task)管理Activity的,一个任务就是一组存放在栈里的Activity的集合,这个栈被称为返回栈(Back Stack)。栈是先进后出的数据结构。每当启动一个新的Activity,它都会在返回栈中入栈,并处于栈顶位置。当按下返回键(Back)或调用finish()方法销毁一个Activity时,处于栈顶的Activity会出栈,而前一个入栈的Activity会重新处于栈顶的位置,系统总是会显示处于栈顶的Activity。

Activity的状态有4种:

        运行状态:当Activity处于返回栈的栈顶时,这时Activity就处于运行状态。

        暂停状态:当Activity没有处于返回栈的栈顶,但仍然是可见的,这时Activity就处于暂停状态。(此时的Activity是非沾满全屏的,如对话框式的Activity,透明浮层发Activity)。

        停止状态:当Activity没有处于栈顶,也完全不可见,这时Activity就处于停止状态。

        销毁状态:当Activity中返回栈中移除后,这时Activity就处于销毁状态。

Activity的7大生命周期onCreate(),onStart(),onResume(),onRestart(),onPause(),onStop(),onDestroy()。

android 四大组件之一Activity->

        onCreate():它是在Activity第一次被创建的时候调用。(在该方法中应该完成Activity的初始化操作,例如加载布局、绑定事件等)。

        onStart():它在Activity有不可见变为可见的时候调用。(注意这个可见并不是我们可以看见Activity,可以理解为Activity可见了,但是我们还看不见)。

        onResume():它在Activity和用户交互的时候调用。(此时Activity处于栈顶位置,我们可以看见Activity)。

        onPause():它在启动或回复另一个Activity的时候调用。(在该方法中将释放掉消耗CPU的资源,保存一些重要的数据,此方法要保证快速运行,否则会影响新到栈顶的Activity的使用)。

        onStop():它在Activity完全不可见的时候调用。(如果启动的新Activity是一个对话框或透明浮层,那么onPause()会被调用而onStop()不会被调用)。

        onDestroy():它在Activity被销毁之前调用。(在该方法中释放内存)。

        onRestart():它在Activity有停止状态变为运行状态前调用。


Activity又可以分为3种生存期

        完整生存期:在onCreate()到onDestroy()之间经历的,就是完整生存期。

        可见生存期:在onStart()到onStop()之间经历的,就是可见生存期。

        前台生存期:在onResume()到 onPause()之间经历的,就是前台生存期。

生命周期的实际调用

        启动ActivityA:

                onCreate()(A)->onStart()(A)->onResume()(A)

        在ActivityA中按返回键(Back):

                 onCreate()(A)->onStart()(A)->onResume()(A)->onPause()(A)->onStop()(A)->onDestroy()(A)

        在ActivityA中按HOME键:

                onCreate()(A)->onStart()(A)->onResume()(A)->onPause()(A)->onStop()(A)

        从ActivityA到ActivityB:

                  onCreate()(A)->onStart()(A)->onResume()(A)->onPause()(A)->onCreate()(B)->onStart()(B)->onResume()(B)->onStop()(A)

        从ActivityB返回ActivityA:

                onCreate()(B)->onStart()(B)->onResume()(B)->onStop()(A)->onPause()(B)->onRestart()(A)->onStart()(A)->onResume()(A)->onStop()(B)->onDestroy()(B)

当ActivityB是透明浮层

         从ActivityA到ActivityB:

                  onCreate()(A)->onStart()(A)->onResume()(A)->onPause()(A)->onCreate()(B)->onStart()(B)->onResume()(B)

        

 从ActivityB返回ActivityA:

                onCreate()(B)->onStart()(B)->onResume()(B)->onPause()(B)->onResume()(A)->onStop()(B)->onDestroy()(B)