android-生命周期

发布时间 2023-04-21 11:16:37作者: cps666

原文地址 zhuanlan.zhihu.com

残枫cps残枫cps

https://developer.android.google.cn/guide/components/activities/activity-lifecycle?hl=zh-cn

一、正常情况下一个Activity会经历以下7个生命周期

1:onCreate:当Activity第一次被运行时调用此方法,可用于加载布局视图,获取控件命名空间等一些初始化工作。

2: onRestart:当Activity被重新启动的时候,调用此方法

3: onStart :表示Activity正在被启动,已经从不可见到可见状态(不是指用户可见,指Activity在后台运行,没有出现在前台),但还是无法与用户进行交互。

4: onResume :表Activity已经变为可见状态了,并且出现在前台工作了,也就是指用户可见了

5: onPause :表示Activity正在暂停,但Activity依然可见,可以执行一些轻量级操作,但一般不会进行太多操作,因为这样会影响用户体验。

6: onStop :表示Activity即将暂停,此时Activity工作在后台,已经不可见了,可以与onPause方法一样做一些轻量级操作,但依然不能太耗时。

7: onDestroy :表示活动即将被销毁。

onStart与onResume,onPause与onStop之间的差距

前者呢是关于Activity是否可见,后者呢是关于Activity是否位于前台

在实际运用当中并没有太大区别,具体详细请参考官方手册

二、异常情况下Activity的生命周期

异常情况常见的大概分为两种

1:系统配置发生改变:这一种情况,最常见的就是屏幕发生旋转,导致Activity被杀死而重新创建,下面这一张图片能够充分体现。

当发生这一异常时,先调用onPause,然后调用onSaveInstanceState()方法保存数据,然后重新创建Activity,然后调用onRestoreInstanceState()把之前Activity的数据恢复.

2:资源内存不够:这一种情况的数据保存与恢复和前面一样。但杀死Activity的优先级分为以下三种:

1:Activity处于前台——用户可见并且能进行交互,优先级最高

2:Activity处于非前台——Activity可见但用户无法进行交互()

3:Activity处于后台——不可见也无法与用户进行交互,比如执行了onStop(),优先级最低

发布于 2023-04-17 10:35・IP 属地山东开启赞赏赞赏开启后,读者将可以付费支持你的创作。Android 开发Android 论坛Android​赞同​添加评论​分享​喜欢​收藏​设置赞同​分享