1.整个周期的流程:

当你第一次创建该activity时调用。你可以在这里设置静态代码,创建View,           

            绑定数据到列表。

在你的activity处于onStop状态后调用

在这个activity正在变成可视化时

这个activity的界面与用户交流时(焦点位置)

这个界面处于次级视角,不是焦点位置,仍然可见

处于不可见状态。

你调用了finish()方法销毁了该activity,或者其他程序需要内存时,它被系统              

isFinishing( )方法区分这两种情况。

2.Actvity 堆栈

每个Actvity的状态由它所在Activity栈中的位置所决定,所有当前正在运行的Actvity将遵循照后进先出的原则。

android生命周期原理 androidactivity生命周期_UI

3.Activity状态

随着Activity的创建和销毁,也就会进出栈如上图所示,其中可能会经历以下四种状态:

   Active状态:在最当前的位置,有焦点,系统会牺牲所有的资源包括其他Activity(非active的)来保证它的运行。

   Paused状态:并不是完全不见,只是一个小部分出现在前面上。

   Stopped 状态:完全不可见,完全给遮蔽了当Activity处于Stopped状态时,一定要保存当前数据和当前的UI状态,

                        否则一 旦Activity退出或关闭时,当前的数据         和UI状态就丢失了。

   Inactive状态:Activity被杀掉以后或者被启动以前,处于Inactive状态。这时Activity已被移除从Activity堆栈中,需要重新启动才可以显示和使用。

4.Task

   它是一个存放多个的Activity的栈。

   特点一:

(stack)方式存放多个Activity。

     

android生命周期原理 androidactivity生命周期_android生命周期原理_02

    特点二:

(MultiTask ):

Home按钮返回到最上面时,android可以将之前启动的多个Task 

Activity保持stopped状态。除非内存不够用时,才会

           销毁部分的Activity 。

    特点三:

        

android生命周期原理 androidactivity生命周期_UI_03

Activity的状态(因为有可能,处于内存需要,系统将你的Activity销毁了)

     以防这种情况,你应该在onSaveInstanceState() 里保存好该Activity的信息。

       Activity被销毁后,系统还是会记住它曾经在这个Task里的位置。

Managing Tasks,可以去看docs,例如:如何让Activity启动另一个Task,而不是取代原有的Task ;

     如何让Activity重新打开一个存在Task底层下的某个Activity,而不是重新创建Activity;如何让Activity

     销毁一个Task下的所有Activity,除了最底层的Activity。

Activity的属性(attribute),和Intent的flag去实现。