美文网首页
Activity记录

Activity记录

作者: 陽光亽活力 | 来源:发表于2019-11-03 12:40 被阅读0次

    一、生命周期祖传图片

    0_1314838777He6C.gif

    二、生命周期各个周期的方法说明

    1. onCreate():不可见状态
      当我们点击activity的时候,系统会调用activity的oncreate()方法,在这个方法中我们会初始化当前布局setContentLayout()方法。
    2. onStart():可见状态没有在前台显示无法交互
      onCreate()方法完成后,此时activity进入onStart()方法,当前activity是用户可见状态,但没有焦点,与用户不能交互,一般可在当前方法做一些动画的初始化操作。
    3. onResume():可见状态
      onStart()方法完成之后,此时activity进入onResume()方法中,当前activity状态属于运行状态 (Running),可与用户进行交互。
    4. onPouse():可见状态
      当另外一个activity覆盖当前的acitivty时,此时当前activity会进入到onPouse()方法中,当前activity是可见的,但不能与用户交互状态。
    5. onStop():不可见状态
      onPouse()方法完成之后,此时activity进入onStop()方法,此时activity对用户是不可见的,在系统内存紧张的情况下,有可能会被系统进行回收。所以一般在当前方法可做资源回收。
    6. onDestory():不可见状态
      onStop()方法完成之后,此时activity进入到onDestory()方法中,结束当前activity。
    7. onRestart():可见状态
      onRestart()方法在用户按下home()之后,再次进入到当前activity的时候调用。调用顺序onPouse()->onStop()->onRestart()->onStart()->onResume().

    三、Activity之间跳转的生命周期

    1. 当AActivity切换BActivity的所执行的方法:
      A:onCreate()->onStart()->onResume()->onPouse()
      B:onCreate()->onStart()->onResume()
      A:onStop()->onDestory()
    2. 当AActivity切换BActivity(BActivity是以dialog形式存在的)所执行的方法:
      A:onCreate()->onStart()->onResume()->onPouse()
      B:onCreate()->onStart()->onResume()

    四、Activity中onSaveInstanceState()方法和onRestoreInstanceState()方法

    1. onSaveInstanceState函数在Activity生命周期中执行。
      outState 参数的作用 :
      数据保存作用 : Activity 生命周期结束时, 需要保存 Activity 状态的时候, 会将要保存的数据使用键值对的形式 保存在 Bundle 对象中;

    2. 调用时机 :
      Activity 被销毁的时候调用, 也可能没有销毁就调用了;
      按下Home键 : Activity 进入了后台, 此时会调用该方法;
      按下电源键 : 屏幕关闭, Activity 进入后台;
      启动其它 Activity : Activity 被压入了任务栈的栈底;
      横竖屏切换 : 会销毁当前 Activity 并重新创建;

    3. onSaveInstanceState方法调用注意事项 :
      用户主动销毁不会调用 :当用户点击回退键或者调用了finish()方法时, 不会调用该方法。
      调用时机不固定 : 该方法一定是在 onStop() 方法之前调用,但是不确定是在 onPause() 方法之前 还是 之后调用。
      布局中组件状态存储 :每个组件都 实现了 onSaveInstance() 方法,在调用函数的时候,会自动保存组件的状态,注意:只有有 id 的组件才会保存。
      关于默认的 super.onSaveInstanceState(outState) : 该默认的方法是实现组件状态保存的。

    4. onRestoreInstanceState(Bundle outState):
      方法回调时机 :在Activity被系统销毁之后恢复 Activity 时被调用,只有销毁了之后重建的时候才调用,如果内存充足,系统没有销毁这个Activity,就不需要调用。
      Bundle 对象传递:该方法保存的Bundle对象在Activity恢复的时候也会通过参数传递到onCreate()方法中。

    相关文章

      网友评论

          本文标题:Activity记录

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