Android基础之Activity的生命周期

来源:互联网 发布:seo公司 上海 编辑:程序博客网 时间:2024/04/28 16:22

    Activity的生命周期包括:

     onCreate(),onStart(),onRestart(),onResume(),onPause(),onStop(),onDestory()

   调用的流程 :

                


    各个方法的含义:

      onCreate():应用程序第一次启动的时候,会调用这个方法。


        onStart():是在应用程序变得的可见之前,这个方法会被调用,在这个方法中可以进行一些数据的加载,做一些准备工作 


        onRestart():如果应用程序调用了onStop()方法,那么这个应用再次启动的时候,就会调用这个方法。


        onResume():在应用和用户进行交互之前,会调用这个方法,这时,这个Activity处于activity栈的最顶端,


        onPause():当系统准备启动另外一个Activity时,会调用这个方法,通常需要在这个方法中进行数据、状态的保存工作


        onStop():当前的Activity不可见时,会调用这个方法,


        onDestory():Activity的最后一个方法,Activity消亡



    完整的Activity的各个生命周期的调用顺序:

  • 启动->可见: 

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


  • 可见->Back->启动:

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


  • 可见->Home->启动:

       onPause()->onStop()->onRestart()->onStart()->onResume()


  • 可见->Home->长按Home键启动(从recent列表启动):

        onPause()->onStop()->onRestart()->onStart()->onResume()


  • 可见->按电源键锁屏->按电源键解锁:

         onPause()->onStop()->onRestart()->onStart()->onResume()

  • 可见->旋转屏幕

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

          旋转屏幕时,如果不做任何的处理,Activity会进行重建


    Activity数据的保存:


     虽然Activity不可见了,但是这个Activity的状态并没有被销毁,Activity的状态,还可以恢复过来,可以通过方法onSaveInstanceState()来保存一些重要的数据和状态,可以通过一些键值对来保存重要的数据,保存在Bundle中,可以通过onCreate()方法,或者onRestoreInstanceState()方法,来恢复之前的数据和状态

    

    大致的流程如图:


                




    注意:因为onSaveInstanceState()并不能保证,一定会被调用,因为有些情况,不需要保存数据和状态(如用户显示的关闭这个Activity时,用户通过Back键离开时),所以,不能通过onSaveInstanceState()方法来保存一些重要的持久化的数据,可以在onSaveInstaceState()方法中保存一些UI的状态,需要在onPause()方法中保存重要的持久化的数据


               

原创粉丝点击