Android组件 Activity的生命周期详解

Activity类中定义了七种回调方法:

1.onCreate()
活动第一次被创建的时候调用。主要进行一些初始化的操作

2.onStart()
在活动从不可见到可以看见的时候调用

3.onResume()
在活动准备好与用户交互的时候调用,此时活动一定位于栈顶

4.onPause()
系统准备启用或者恢复另一个活动的时候调用,通常在这个方法中将消耗的CPU资源释放,保存数据

5.onStop()
在活动完全看不见的时候调用,而onPause(),在活动处于暂停状态也会调用,

6.onDestroy()
在活动被销毁前调用。调用这个方法后,活动变为销毁状态

7.onRestart()
在活动由停止状态,转换为运行状态时调用

在这里插入图片描述

Activity的生命周期启动情况:

1.启动与退出
正常启动:onCreate() --> onStart() --> onReusme()
正常退出:onPause() --> onStop() --> onDestory()
再次启动:onCreate() --> onStart() --> onResume()

2.点击主页
已经处于前台的 Activity,点击主页按钮离开当前 Activity:
OnPause() --> onStop()
回到 Activity:
onRestart() --> onStart() --> onResume()

3.熄灭屏幕,打开其他Activity
Activity不可操作:
onPause() --> onStop()
onStop() 期间应用被强行杀死了,再回到 Activity:
onCreate() --> onStart() --> onResume()

4.多个Activity切换时
当启动另一个 Activity 时,当前 Activity:
onPause() --> onStop()
当点击返回按钮,使另一个 Activity 退出时,当前Activity:
onRestart() --> onStart() --> onResume()

5.对话框存在时
普通对话框对生命周期没有任何影响。
但是如果有个 Activity 伪装成对话框模式,那么当它启动时,之前的Activity:onPause()
“对话框”消失后,回调 onResume() 再次回到前台

在这里插入图片描述

Activity的三种生存期:

完整生存期
Activity 在 onCreate() 方法和 onDestroy() 方法之间所经历的就是完整生存期。般情况下, 一个 Activity 会在 oncreat() 方法中完各种初始化操作,而在 onDestroy() 方法中完成释放内存的操作。

可见生存期
Activity 在 onStart() 方法 和 onStop() 方法之间所经历的就是可见生存期。在可见生存期内,Activity 对于用户总是可见的,即便有可能无法和用户进行交互。我们可以通过这两个方法合理地管理那些对用户可见的资源。比如在 onStart() 方法中对资源进行加载,而在 onStop() 方法中对资源进行释放,从而保证处于停止状态的 Activity 不会占用过多内存。

前台生存期
Activity在 onResume() 方法和 onPause() 方法之间所经历的就是前台生存期。在前台生存期内,Activity 总是处于运行状态,此时的 Activity 是可以和用户进行交互的,我们平时看到和接触最多的就是这个状态下的 Activity。

大佬的Activity总结:
https://blog.csdn.net/liuhe688/article/details/6733407

    //创建
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e("TAG","onCreate----创建");
    }

    //启动
    @Override
    protected void onStart() {
        super.onStart();
        Log.e("TAG","onStart----启动");
    }

    //恢复
    @Override
    protected void onResume() {
        super.onResume();
        Log.e("TAG","onResume----恢复");
    }

    //暂停
    @Override
    protected void onPause() {
        super.onPause();
        Log.e("TAG","onPause----暂停");
    }

    //停止
    @Override
    protected void onStop() {
        super.onStop();
        Log.e("TAG","onStop----停止");
    }

    //销毁
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e("TAG","onDestroy----销毁");
    }

    //重启
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e("TAG","onRestart----重启");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值