目录

知识点整理篇(一):Android四大组件之Activity生命周期详解


前言:

  • Activity应该是Android开发中使用的最多的组件了,以下为自己的一点小结

一、 概念
  • 1、Activity是Android应用与用户交互的窗口
  • 2、Activity的指责有:
    • 容器:承载与用户交互的组件
    • 管理:管理窗口的生命周期
    • 传递:处理页面的跳转(Fragment 也是可以的,更推荐Activity+Fragment的形式)
    • 接收:接收用户操的操作数据
    • 展示:向用户展示数据
    • 存储:界面状态的存储
二、生命周期

https://upload-images.jianshu.io/upload_images/1811893-0be013e5b8b8a13e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

  • onCreate:Activity创建的时候被回调,其为Activity证明周期方法中第一个被调用的方法,在创建Activity的时候,一般需要重写该方法来做一些初始化的工作,通过调用setContentView来设置界面布局的资源文件,初始化所需要的控件等。
  • onStart:Activty正在启动,此时处理可见状态,但还不能交互。
  • onRestart:Activity从不可见状态恢复时被调用,其后会继续调用onStart方法。
  • onRestoreInstanceState:Activity异常销毁并重建时回调该方法,可取出从onStoreInstanceState中存储到bundle中的数据,进行界面状态的恢复。
  • onResume:此时的Activity处理Task的栈顶位置,处于活跃状态,可与用户进行交互。
  • running:onResume执行之后的状态,此时的Activity处理活跃状态
  • onPause:
    • Activty失去焦点,此时的Activity不可与用户进行交互,但可能仍处于可视状态,其所有的状态信息和成员变量都正常存储,但是当设备内存紧张时,可能会被回收。
    • 该方法可做一些资源回收,但不可做太多耗时的操作,because 如果你做太多耗时的操作,将影响下一个页面的显示,because Android的页面跳转机制是只有当旧的页面的onPause方法回调后,新的Activity的onResume方法才会被调用。
  • onStoreInstanceState:Activity异常销毁时被调用,可在该方法中将状态信息存储到bundle中以便后续恢复。
  • onStop:Activty失去焦点并且处于不可见状态,其所有的状态信息和成员变量都正常存储,但是当设备内存紧张时,可能会被回收。
  • onDestory:Activty正在被销毁,可做一些资源的回收操作。
  • onWindowFocusChange:在onResume和onPause回调后会调用,表示窗口的聚焦状态发生变化。
三、横竖屏生命周期
  • 横竖屏切换:

    • 1、onPause
    • 2、onSaveInstanceState
    • 3、onStop
    • 4、onDestory
    • 5、onCreate
    • 6、onStart
    • 7、onRestoreInstanceState
    • 8、onResume
  • 横竖屏切换时防止Activity异常销毁并重建

    • 加configChange、screenSize属性configChange=“orientation”
    • 此时当发生横竖屏切换时,onConfigurationChanged方法将会被回调