Android Activity生命周期【图文】

1.整个周期的流程:

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

            绑定数据到列表。

        1.1 onRestart ( ): 在你的activity处于onStop状态后调用

             1.2onStart ( ):在这个activity正在变成可视化时

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

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

             1.3onStop( ):处于不可见状态。

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

             自动销毁了,你可以用isFinishing( )方法区分这两种情况。

2.Actvity 堆栈

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

3.Activity状态

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

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

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

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

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

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

4.Task

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

   特点一:

      它是以栈(stack)方式存放多个Activity

     

    特点二:

      多任务功能(MultiTask ):

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

           同时放在后台,所有的Activity保持stopped状态。除非内存不够用时,才会

           销毁部分的Activity 。

    特点三:

        

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

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

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

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

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

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

       这些操作都可以通过Activity的属性(attribute),和Intentflag去实现

 

posted @ 2015-02-13 14:24  beyondbycyx  阅读(254)  评论(0编辑  收藏  举报