Activity生命周期

作者: huhu502 | 来源:发表于2016-07-10 12:11 被阅读96次

    Activity

    • 概念

    它指的是用户可以看到的界面,界面中有一些控件,它是放在res/layout下面,是xml文件来实现的。启动activity时需要在配置文件中注册。

    Activity的生命周期

    • oncreate
      [Android入门- 关于Activity下的onCreate方法]
      activity创建的时候调用。
      这里面还以Bundle形式提供对以前存储的任何状态进行访问。
      整个生命周期只会调用一次而且是 最先开始的。
      一般做初始化操作。
    • onstart
      屏幕上对用户可见时调用,启动activity,使界面可见。
    • onresume
      开始与用户交互时调用。
      恢复activity,使界面可操作
    • onpause
      可见保存当前数据,类似于对话框的时候调用。
      被暂停时保存当前游戏信息,界面可见不可操作
    • onstop
      界面不可见,不可操作
    • ondestroy
      activity完全移除时调用
    • onrestart
    • onSaveInstanceState
      activity即将移除栈顶保留UI状态时调用
    • onRestoreInstanceState 用来恢复UI状态

    三个activity的跳转

    1)创建三个activity分别是MainActivity,Main2Activity,Main3Activity;
    2)写出每个activity的生命周期,并输出相应的类名和方法名
    3)打印结果:

    • 当MainActivity启动的时候
     main onCreate
    
       main onStart
       main onResume
    
    • 当MainActivity跳转到Main2Activity的时候
      onResume() 的注释中,建议是在onResume()中打开独占设备(比如相机),与onResume()对应的是onPause(),关闭相机的操作也应该在此方法中被调用;否则,考虑一下如下场景:

      如果MainActivity打开了相机,我们点击某按钮要跳转到Main2Activity中,Main2Activity也想打开相机;假设MainActivity的onPause() 在 Main2Activity启动后再被调用,
      那Main2Activity根本就无法再正常启动相机。
      摘自:[Activity的生命周期]

          main onPause
    
          main2 onCreate
          main2 onStart
          main2 onResume
          main onStop
    
    • Main2Activity回退到MainActivity的时候
     main2 onPause
    
       main onRestart
       main onStart
       main onResume
       main2 onStop
       main2 onDestroy
    
    • 当Main2Activity跳转到Main3Activity的时候
      为什么main2先调用onpause呢?有一种情况就是如果先调用main2 onPause,main2 onStop。那么当main2跳转到main3 的过程中main3打不开了,那么界面就是黑屏,严重影响用户体验。如果是下面的情况就不会出现黑屏。
     main2 onPause
    
       main3 onCreate
       main3 onStart
       main3 onResume
       main2 onStop
    
    • 当Main3Activity跳转到MainActivity的时候
      main3 onPause
    
        main onCreate
        main onStart
        main onResume
        main3 onStop
    

    相关文章

      网友评论

      本文标题:Activity生命周期

      本文链接:https://www.haomeiwen.com/subject/jcvrjttx.html