# 组件之Activity生命周期和注意点

作者: 伍零一 | 来源:发表于2016-05-13 20:26 被阅读254次

引言


说到Activity,就会想到它的声明周期,面试官也经常会问。所以我们来说明一下。

声明周期


activity_lifecycle.png

除了上图还有四个回调方法,如下:

  • onContentChanged
  • onPostCreate
  • onPostResume
  • onConfigurationChanged

综合起来一共11个方法,我们按照触发顺序说明:

  • onCreate()
    初始化Activity数据,同时setConentView(view),设置好布局。
  • onContentChanged
    当Activity布局变动的时候触发,setContentView 和 addContentView 方法执行完毕后调用该方法,onCreate方法中有setContentView,所以会触发此方法。
  • onPostCreate()
    当onCreate()方法执行完毕后触发。
  • onStart()
    调用这个方法的时候,界面被用户所看见,但是不能交互即点击啊什么的。
  • onResume()
    可见且可以进行交互,执行这个方法后,Activity就会处于running状态。
  • onPause()
    整个窗口被半遮盖或者半透明的时候会执行这个方法,即当你想离开这个Activity,或者想进入下一个Activity,处于半遮盖或者半透明状态就会被调用。
  • onPostPause()
    和onPostCreate()类似,也是当onPause()执行完毕后调用此方法彻底执行完毕的回调。
  • onStop()
    当Activity整个窗口都被遮盖的时候会被触发。当然完全被遮盖之前肯定会经历半遮盖的过程,所以onPause()方法肯定先被调用。
  • onDestory()
    在这里做资源的回收与销毁,引用在这时候会被自动回收且销毁,但是线程不会被自动回收,所以你需要手动在这个方法中清楚开启的线程,或者其他资源。

注意点


  • 当处于半透明,半遮盖状态的时候,又回到Activity,就会重回界面,即会执行onResume()方法。
  • 当处于全遮盖的时候,即执行完onStop()方法后,又重回界面,这时候就会调用onRestart()方法,再执行onStart()方法,onResume()重新回到界面。
  • 还有ANR问题,当处于onPause(),onStop即全遮盖或者半遮盖状态的时候,内存占用过多,Activity就有可能被回收,回收后重新回到Activity,就会执行onCreate()方法执行Activity的声明周期。

总结


  • 灵活运用声明周期,可以做到很舒服的用户体验。

相关文章

  • # 组件之Activity生命周期和注意点

    引言 说到Activity,就会想到它的声明周期,面试官也经常会问。所以我们来说明一下。 声明周期 除了上图还有四...

  • Android Asynctask总结

    使用时的注意点 AsyncTask不与任何组件绑定生命周期 使用建议在Activity 或 Fragment中使用...

  • 二、Lifecycle

    使用生命周期感知组件处理生命周期 生命周期感知组件可以在其他组件(例如 activity 和 fragment)的...

  • Android 四大组件

    Android四大组件 --- Activity Activity生命周期 生命周期:onCreate() -> ...

  • Android四大组件【转】

    Android四大组件 --- Activity Activity生命周期 生命周期:onCreate() -> ...

  • Android四大组件之Activity

    Android四大组件之Activity 1、Activity生命周期 一般情况下Activity会经历如下生命周...

  • 四大组件

    四大组件(ABCS) Activity: 七大生命周期:注意:内存不足时回收Activity或者直接干掉进程,on...

  • 四大组件之Activity详解.md

    Activity 生命周期 注意点 Activity切换时,旧Activity的onPause会先执行,然后才会启...

  • 一、Android基础知识点

    四大组件是什么 四大组件的生命周期和简单用法 Activity之间的通信方式 Activity各种情况下的生命周期...

  • Android

    四大组件是什么 四大组件的生命周期和简单用法 Activity之间的通信方式 Activity各种情况下的生命周期...

网友评论

    本文标题:# 组件之Activity生命周期和注意点

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