美文网首页
Activity生命周期

Activity生命周期

作者: NengLee | 来源:发表于2022-10-09 11:33 被阅读0次

    在开发过程中,Activity的生命周期伴随业务、动画,也是最基础

    生命周期图
    1. oncreate()
    2. onstart() // onRestart()
    3. onResume()
    4. onPouse()
    5. onStop()
    6. onDestory()
    当A (Activity)-> B(Activity) UI页面,执行流程
    • A(Activity): onCreate() -> onStart() -> onResume() -> onPouse()
    • B(Activity): onCreate() -> onStart() -> onResume()
    • A(Activity): onStop() -> onDestory()
    当A (Dialog)-> B(Activity) UI页面,执行流程
    • A(Activity): onCreate() -> onStart() -> onResume() -> onPouse()
    • B(Activity): onCreate() -> onStart() -> onResume()

    Activity生命周期的四种状态

    1. running 当前显示在屏幕Activity的任务顶端,处于用户端可见状态
    2. poused 依旧处于用户可见状态,但是界面的焦点已经失去,此时的Activity无法与用户进行交互
    3. stopped 用户看不到当前界面,也无法与用户进行交互,完全被覆盖
    4. killed 当前界面被销毁,等待这个系统被回收
    4种状态图

    onSaveInstanceState(Bundle outState)

    参数outState:数据保存,当Activity声明的周期结束的时候,需要保存Activity状态的时候,会将要保存的数据已键值对的形式保存在Bundel对象中。

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

    需要注意的是:当用户主动销毁不会调用,点击返回Back,或者是主动调用finish()方法,不会调用该方法,调用时机不确定,但是该方法一定是在onStop()方法之前调用,但是不确定是在onPause()方法之前还是调用之后。

    onRestoreInstanceState(Bundle outState)

    在Activity被系统销毁之后,且恢复Activity时被调用,只有销毁了之后重建的时候才调用,如果系统内存充足,系统没有销毁这个Activity,就不需要调用

    相关文章

      网友评论

          本文标题:Activity生命周期

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