首页 > 编程知识 正文

简述fragment生命周期,activity生命周期四种状态

时间:2023-05-06 02:38:39 阅读:110196 作者:4916

本文主要简要介绍了从官方文档中获得的Activity的生命周期。

在简要说明每个生命周期方法之前,我先总体概述一下。 可以从三个级别监视Activity的生命周期

完整生命周期:完整的生命周期以onCreate方法回调开始,以onDestroy方法回调结束

可见期间:可见期间以onStart方法回调开始,以onStop方法回调结束

前台周期:前台周期以onResume方法回调开始,以onPause方法回调结束

以下简要介绍了每个生命周期方法。

onCreate生命周期的第一种方法表示Activity正在创建(启动)。 特殊说明:在此方法内调用finish方法时,将立即启动onDestroy回调,而不执行其他生命周期

触发onRestart方法的前提:调用onStop方法。 在调用onStop方法后不再显示Activity时调用。 当方法被调用时,系统会相继调用onStart和onResume方法。

如果onStart Activity是可见的,则调用。 此时Activity还不在前台。 在onCreate方法之后或由于调用onStop方法而导致的Activity不再可见时调用

onResume方法的回调Activity位于前台。 根据官方文档,此处适用于启动动画和独占设备访问(如摄像头)

就在onPause Activity进入后台之前回调此方法。 需要特别注意的是,如果Activity A调用Activity B,则在创建Activity A的onPause方法之前,请不要使用此回调方法执行耗时的操作。

onStop Activity在不可见时回调

onDestroy生命周期的最后一种方法表示Activity将被丢弃。 官方文档显示,由于它可能会简单粗暴地杀死Activity主机进程(下图中的注释1 ),因此不应该依赖此方法来执行数据存储任务,而是可以使用此方法来执行资源释放操作

下图是官方文档的图像

活动生命周期图

虽然此图清晰而精确,但官方文档对每个生命周期的回调方法并不详细,因此如果不仔细审阅文档,将很难确定图的生命周期方法的方向,并且可能会误解某些方法。 例如,关于onStop方法,有些童鞋可能误解了这一点,误以为在Activity进入后台时回调该方法,但实际上进入后台时回调的是onPause 有些童鞋误以为onResume方法回调意味着可以进行交互,但实际上是publicvoidonwindowfocuschanged (booleanHasfocus )回调过程中的hasfocus

是否能看到Activity是与是否在前台不同的问题,一对onStart和onStop描述是否能看到Activity; 和onPause

onResume对描述活动是否在前台。 可见Activity并不意味着可以相互作用,即使在前台也不一定可以相互作用。 作为直接示例,如果Activity显示Dialog,则表示Activity还在前台,但无法与Activity进行交互

另外,关于上述印象中的表记2的流程,我想很多人没有自己验证过。 因为通常很难交互式地再现这个场景。 在这些场景中,Activity A启动Activity B,可以使用直接在Activity B的onCreate方法中调用finish方法的代码控件进行模拟

收工~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。