Android Activity生命周期

Activity作为 Android四大组件之一,应用非常广泛。有一系列的生命周期回调函数。

1、onCreate:在首次创建 Activity 时调用。系统向此方法传递一个 Bundle 对象,其中包含 Activity 的上一状态,不过前提是捕获了该状态,而后会调用onStart方法。(可以在此方法中执行所有正常的静态设置 ,比如:创建视图、将数据绑定到列表等等。)
2、onStart:在 Activity 即将对用户可见之前调用。而后如果Activity转入了前台就会调用onResume方法。 如果此时直接屏幕熄灭或者用户按下home键则会直接调用onStop方法,当然这种情况比较极端。
3、onResume:在 Activity 即将开始与用户进行交互之前调用。 此时,Activity 处于 Activity 堆栈的顶层,并具有用户输入焦点。当跳转另一个Activity,或者退出当前Activity后会调用onPause方法。
4、onPause:在系统即将开始继续另一个 Activity 时调用。 此方法通常用于确认对持久性数据的未保存更改、停止动画以及其他可能消耗 CPU 的内容,诸如此类。 它应该非常迅速地执行所需操作,因为它返回后,下一个 Activity 才能继续执行,所以不能执行耗时操作。而后正常情况下会调用5、onStop方法。但是有一种极端情况,就是如果这个时候快速让 当前Activity 返回前台,则会调用onResume方法。
6、onStop:在 Activity 对用户不再可见时调用。如果 Activity 被销毁,或另一个 Activity(一个现有 Activity 或新 Activity)继续执行并将其覆盖,就会调用此方法。而后如果 Activity 恢复与用户的交互,则会调用 onRestart 方法,如果 Activity 被销毁,则会调用onDestroy方法。

7、onDestroy:在 Activity 被销毁前调用,这是 Activity 收到的最后调用。 当 Activity 结束(对 Activity 调用了 finish 方法),或系统为节省空间而暂时销毁该 Activity 实例时,可能会调用它。 你可以通过 isFinishing 方法区分这两种情形。

8、onRestart:在Activity被停止后再次启动时调用(即屏幕熄灭后再次回到app,按下home键后再次回到app),而后会调用onStart方法。

Activity生命周期图

 Activity  函数的调用顺序与情况:

1、单个 Activity :

1、  正常启动onCreate-->onStart--> onReusme,

        正常退出onPause-->onStop-->onDestory,

        再次启动onCreate--> onStart-->onResume

2、  已经处于前台的Activity,点击主页按钮离开当前Activity,onPause-->onStop,

        回到Activity: onRestart-->onStart-->onResume


3、  Activity不可操作onPause--= onStop (如:息屏,打开了其他Activity) ,而应用被强行杀死了   

        再回到Activity, onCreate-->onStart-->onResume

 2、多个 Activity

1、  当启动另—个Activity时,当前Activity : onPause-->onStop,

        当点击返回按钮:

        使另—个Activity退出时,当前Activity : onRestart-->onStart-->onResume


2、对话框存在时
        1.普通对话框对生命周期没有任何影响
        2.如果有个Activity伪装成对话框模式,那么当它启动时,之前的Activity : onPause

                  “对话框”消失后,回调onResume再次回到前台

3、横竖屏切换时候Activity的生命周期
1、不设置Activity android:confifigChanges时,切屏会重新回调各个生命周期,
                 切横屏时会执行一次,切竖屏时会执行两次。
2、设置Activity android:confifigChanges=”orientation” 时,切屏还是会调用各个生命周期,
                   切换横竖屏只会执行一次
3、设置 Activity android:confifigChanges=”orientation |keyboardHidden” 时,
                   切屏不会重新调用各个生 命周期,
                   只会执行onConfifigurationChanged方法

版权声明:本文为CSDN博主 CongPong 的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/CongPong/article/details/125891899

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值