fragment与activity的生命周期方法是一致的吗_请描述activity的生命周期

fragment与activity的生命周期方法是一致的吗_请描述activity的生命周期在学Fragment之前肯定学过了Activity,Activity有属于自己的生命周期,Fragment基本上和activity大体一样,但是有自己特有的生命周期方法,下面我们一起来看一下。说白了主要看两张图,和运行代码:一.Fragment的生命周期二.与Activity生命周期的对比三.场景演示

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在学Fragment之前肯定学过了Activity,Activity有属于自己的生命周期,Fragment基本上和activity 大体一样,但是有自己特有的生命周期方法,下面我们一起来看一下。

说白了主要看两张图,和运行代码:

一. Fragment的生命周期

fragment与activity的生命周期方法是一致的吗_请描述activity的生命周期

二. 与Activity生命周期的对比

fragment与activity的生命周期方法是一致的吗_请描述activity的生命周期


三. 场景演示 :

①启动Fragment

07-05 11:14:48.791 16273-16273/com.mypractice E/—-A Activity—-: onCreate
07-05 11:14:48.809 16273-16273/com.mypractice E/—-A Activity—-: onStart
07-05 11:14:48.809 16273-16273/com.mypractice E/—-A Fragment—-: onAttach
07-05 11:14:48.809 16273-16273/com.mypractice E/—-A Fragment—-: onCreate
07-05 11:14:48.809 16273-16273/com.mypractice E/—-A Fragment—-: onCreateView
07-05 11:14:48.813 16273-16273/com.mypractice E/—-A Fragment—-: onActivityCreated
07-05 11:14:48.813 16273-16273/com.mypractice E/—-A Fragment—-: onStart
07-05 11:14:48.813 16273-16273/com.mypractice E/—-A Activity—-: onResume
07-05 11:14:48.813 16273-16273/com.mypractice E/—-A Fragment—-: onResume

②锁屏(注意此处Fragment的onSaveInstanceState方法执行,但是Activity的此方法并未执行,解释见文末尾注释):

07-05 11:18:36.007 16273-16273/com.mypractice E/—-A Activity—-: onPause
07-05 11:18:36.007 16273-16273/com.mypractice E/—-A Fragment—-: onPause

07-05 11:18:36.007 16273-16273/com.mypractice E/—-A Fragment—-:onSaveInstanceState

07-05 11:18:36.193 16273-16273/com.mypractice E/—-A Activity—-: onStop
07-05 11:18:36.194 16273-16273/com.mypractice E/—-A Fragment—-: onStop

③解锁:

07-05 11:19:20.898 16273-16273/com.mypractice E/—-A Activity—-: onRestart
07-05 11:19:20.899 16273-16273/com.mypractice E/—-A Activity—-: onStart
07-05 11:19:20.899 16273-16273/com.mypractice E/—-A Fragment—-: onStart
07-05 11:19:20.910 16273-16273/com.mypractice E/—-A Activity—-: onResume
07-05 11:19:20.910 16273-16273/com.mypractice E/—-A Fragment—-: onResume

④切换到其它 Fragment(A –> B):

07-05 11:21:02.961 16273-16273/com.mypractice E/—-A Activity—-: onPause
07-05 11:21:02.961 16273-16273/com.mypractice E/—-A Fragment—-: onPause
07-05 11:21:02.999 16273-16273/com.mypractice E/—-B Fragment—-: onAttach
07-05 11:21:02.999 16273-16273/com.mypractice E/—-B Fragment—-: onCreate
07-05 11:21:03.000 16273-16273/com.mypractice E/—-B Fragment—-: onCreateView
07-05 11:21:03.002 16273-16273/com.mypractice E/—-B Fragment—-: onActivityCreated
07-05 11:21:03.002 16273-16273/com.mypractice E/—-B Fragment—-: onStart
07-05 11:21:03.003 16273-16273/com.mypractice E/—-B Fragment—-: onResume

07-05 11:21:03.900 6921-6921/kj.com.mypractice E/—-A Fragment—-: onSaveInstanceState
07-05 11:21:03.452 16273-16273/com.mypractice E/—-A Activity—-: onStop
07-05 11:21:03.452 16273-16273/com.mypractice E/—-A Fragment—-: onStop

⑤Back键返回(B –> A):

07-05 11:23:32.094 16273-16273/com.mypractice E/—-B Fragment—-: onPause
07-05 11:23:32.099 16273-16273/com.mypractice E/—-A Activity—-: onRestart
07-05 11:23:32.100 16273-16273/com.mypractice E/—-A Activity—-: onStart
07-05 11:23:32.100 16273-16273/com.mypractice E/—-A Fragment—-: onStart
07-05 11:23:32.100 16273-16273/com.mypractice E/—-A Activity—-: onResume
07-05 11:23:32.100 16273-16273/com.mypractice E/—-A Fragment—-: onResume
07-05 11:23:32.515 16273-16273/com.mypractice E/—-B Fragment—-: onStop
07-05 11:23:32.516 16273-16273/com.mypractice E/—-B Fragment—-: onDestroyView
07-05 11:23:32.516 16273-16273/com.mypractice E/—-B Fragment—-: onDestroy
07-05 11:23:32.516 16273-16273/com.mypractice E/—-B Fragment—-: onDetach

⑥Home键回到桌面:

07-05 11:25:56.622 16273-16273/com.mypractice E/—-A Activity—-: onPause
07-05 11:25:56.623 16273-16273/com.mypractice E/—-A Fragment—-: onPause

07-05 11:51:26.861 6921-6921/kj.com.mypractice E/—-A Fragment—-: onSaveInstanceState
07-05 11:25:57.252 16273-16273/com.mypractice E/—-A Activity—-: onStop
07-05 11:25:57.252 16273-16273/com.mypractice E/—-A Fragment—-: onStop

⑦Home键之后返回应用:

07-05 11:26:48.603 16273-16273/com.mypractice E/—-A Activity—-: onRestart
07-05 11:26:48.603 16273-16273/com.mypractice E/—-A Activity—-: onStart
07-05 11:26:48.603 16273-16273/com.mypractice E/—-A Fragment—-: onStart
07-05 11:26:48.603 16273-16273/com.mypractice E/—-A Activity—-: onResume
07-05 11:26:48.603 16273-16273/com.mypractice E/—-A Fragment—-: onResume

⑧退出Activity(即退出Fragment):

07-05 11:28:17.679 16273-16273/com.mypractice E/—-A Activity—-: onPause
07-05 11:28:17.679 16273-16273/com.mypractice E/—-A Fragment—-: onPause
07-05 11:28:18.109 16273-16273/com.mypractice E/—-A Activity—-: onStop
07-05 11:28:18.110 16273-16273/com.mypractice E/—-A Fragment—-: onStop
07-05 11:28:18.110 16273-16273/com.mypractice E/—-A Activity—-: onDestroy
07-05 11:28:18.110 16273-16273/com.mypractice E/—-A Fragment—-: onDestroyView
07-05 11:28:18.111 16273-16273/com.mypractice E/—-A Fragment—-: onDestroy
07-05 11:28:18.111 16273-16273/com.mypractice E/—-A Fragment—-: onDetach


补充:两Activity跳转生命周期方法执行顺序:

① A –> B

07-05 11:32:23.460 27917-27917/kj.com.mypractice E/—-A Activity—-: onPause

07-05 11:32:23.513 27917-27917/kj.com.mypractice E/—-B Activity—-: onCreate

07-05 11:32:23.513 27917-27917/kj.com.mypractice E/—-B Activity—-: onStart
07-05 11:32:23.513 27917-27917/kj.com.mypractice E/—-B Activity—-: onResume
07-05 11:32:23.953 27917-27917/kj.com.mypractice E/—-A Activity—-: onStop

② B –> A

07-05 11:37:45.538 27917-27917/kj.com.mypractice E/—-B Activity—-: onPause
07-05 11:37:45.547 27917-27917/kj.com.mypractice E/—-A Activity—-: onRestart
07-05 11:37:45.547 27917-27917/kj.com.mypractice E/—-A Activity—-: onStart
07-05 11:37:45.547 27917-27917/kj.com.mypractice E/—-A Activity—-: onResume
07-05 11:37:45.976 27917-27917/kj.com.mypractice E/—-B Activity—-: onStop
07-05 11:37:45.976 27917-27917/kj.com.mypractice E/—-B Activity—-: onDestroy


注释:

Activity可能被杀死也就是异常终止,之后: OnSaveInstanceState(onStop之前) –> OnRestoreInstanceState(onStart之后)
正常结束只有BACK键  ,
异常终止的情况(注意是可能,并不是一定):

1、资源相关的系统配置被改变,比如横竖屏、输入法显示和隐藏
2、
系统内存不足时
3、HOME键或者锁屏


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170700.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月16日 上午8:36
下一篇 2022年8月16日 上午8:36


相关推荐

  • 判断凸包

    判断凸包下面以 hdu2108 为例 说明一下判断凸包的算法

    2026年3月17日
    2
  • 使用IDM下载百度网盘的文件(亲测有用)[通俗易懂]

    使用IDM下载百度网盘的文件(亲测有用)[通俗易懂]使用IDM下载百度云盘文件

    2022年6月16日
    62
  • 安卓传感器开发_智能传感器的应用

    安卓传感器开发_智能传感器的应用本节书摘来自异步社区《Android传感器开发与智能设备案例实战》一书中的目录,作者朱元波,更多章节内容可以访问云栖社区“异步社区”公众号查看目录前言第1章Android开发技术基础第1章第1.1节智能手机操作系统介绍第1章第1.2节Android的巨大优势[第2章搭建Android应用开发环境]()第2章第2.1节安装And…

    2026年4月17日
    4
  • UART 和 USART 有区别

    UART 和 USART 有区别UART:universalasynchronousreceiverandtransmitter通用异步收发器          [BusSignal]  TX ,RX USART:universalsynchronousasynchronousreceiverandtransmitter通用同步异步收发器          [BusSignal]  T

    2022年5月19日
    44
  • 里氏代换原则详解

    里氏代换原则详解里氏代换原则定义 里氏代换原则 LiskovSubsti 面向对象设计的基本原则之一 里氏代换原则中说 任何基类可以出现的地方 子类一定可以出现 LSP 是继承复用的基石 只有当衍生类可以替换掉基类 软件单位的功能不受到影响时 基类才能真正被复用 而衍生类也能够在基类的基础上增加新的行为 里氏代换原则是对 开 闭 原则的补充 实现 开 闭 原则的关键步骤就是抽象化 而基类与子类的继承关系就是抽象化的具体实现 所以里氏代换原则是对实现抽象化的具体步骤的规

    2026年3月17日
    2
  • 简图记录-曾国藩家训 观后感「建议收藏」

    简图记录-曾国藩家训 观后感「建议收藏」简图记录 总结~材料 郦波教授的百家讲坛 和 部分相关书籍  一个人疑惑的时候,总是希望通求知如过阅读找到自己的答案,读史可以使人明智,历史总是有借鉴意义,相对于空谈鸡汤无疑更有说服力。我认为向周围的人学习是个人成长一个非常重要的手段,周围的人都是真实的而且在一定范围是可交流讨论的,相对一些当代的名人 他们的事迹往往都是经过加工 或 胡编 鸡汤意味更浓一些,那么另外一条路就是找一些古代的贤…

    2022年6月4日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号