Activity生命周期(一)

来源:互联网 发布:兰帕德生涯进球数据 编辑:程序博客网 时间:2024/05/16 06:10

Activity的生命周期和启动模式

正常情况下,除了 Window,Dialog和Toast我们能见到的界面只有Activity。本章的重点是Activity在使用中 不容易被搞清楚的点,例如生命周期、启动模式、IntentFilter的匹配规则分析。

Activity生命周期分析

图例:

Activity_pic


经典情况下的生命周期分析

如上图所示,正常情况下Activity会经历如下生命周期:

  • (1)onCreate:表示Activity正在被创建,这是生命周期中第一个方法。在这个方法中我们可以做一些初始化工作,比如加载Layout,以及进行一些数据相关的初始化工作。
  • (2)onRestart:表示Activity再重新启动,一般情况下Activity由不可见重新变为可见时,此方法就会被调用。一般此情况由用户导致,就是执行onPause()和onStop()后又回到这个Activity时被调用。
  • (3)onStart:表示Activity已经被创建了,但是目前还在后台,用户看不到,也操作不了
  • (4)onResume:表示此时Activity已经由后台转为前台了,用户可见了,能做交互了(基本来说当该Activity被重新启动时一定走这个方法,因此有些重新返回Activity后的相关操作,如重新加载数据、更改UI等等,均可以放在这里进行)。
  • (5)onPause:这个时候Activity就开始停止了,一般来说,紧接着onStop()就会被调用,但是极端情况下,我们再重新打开这个Activity,那么onResume就会被调用,界面再次显示,但是,用户基本不可能达到这个操作。一般这个时候我们可以做一些数据存储啊,停止动画之类的操作,但是不要太耗时了,否则可能卡界面(onResume没法被调用,黑屏~~)
  • (6)onStop:这个是后Activity即将停止了,我们可以做一些轻量级的回收工作,同样不要太耗时。
  • (7)onDestory:这时Activity被彻底销毁,我们可以做一些释放资源的操作或者回收工作了。

    注意:
    1. 针对一个特定的Activity,第一次启动,回调为:onCreate->onStart->onResume
    2. 当用户打开一个新的Activity或切换到桌面时:onPause->onStop,但是Activity的主题如果是透明主题的话,就不会执行onStop,因为只是暂停,而不用彻底停止。
    3. 当用户回到原来的Activity时:onRestart->onStart->onResume
    4. 当用户按下back键时1 onPause->onStop->onDestory

  1. 代码中执行默认onBackPress()方法 ↩
1 0
原创粉丝点击