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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu 18.04 EM7345 4G 模块接入点删除「建议收藏」

    ubuntuEM7345创建多个接入点如何删除本人TinkPadT440P笔记本,装了ubuntu18.04,前几天一激动,买了一个M2接口的EM7345,支持联通3G/4G,电信4G,都能正常使用,我一不小心建了许动连接点,本人有洁癖,但又不知道怎么删除,后来找了好几天,找到以下路径,又这方面需求的同学,可以参考一下/etc/NetworkManager/syst…

    2022年4月12日
    183
  • java中lambda表达式[通俗易懂]

    java中lambda表达式[通俗易懂]Java8(JDK1.8)中加入的lambda表达式Lambda的使用前提使用Lambda必须具有接口,且要求接口中有且仅有一个抽象方法。无论是JDK内置的Runnable、Comparator接口还是自定义的接口,只有当接口中的抽象方法存在且唯一时,才可以使用Lambda。使用Lambda必须具有上下文推断。也就是方法的参数或局部变量类型必须为Lambda对应的接口类型,才…

    2022年7月8日
    28
  • linux dp接口显示,什么是DP接口?DP接口有哪些用处?

    原标题:什么是DP接口?DP接口有哪些用处?DisplayPort(简称DP)是一个由PC及芯片制造商联盟开发,视频电子标准协会标准化的数字式视频接口标准。它是第一个依赖数据包化数据传输技术的显示通信端口。DP接口主要用于视频源与显示器等设备的连接,并也支持携带音频、USB和其他形式的数据。DP接口常见设备有笔记本电脑、显示器、家庭影院等。DP接口可以简单理解成HDMI的加强版,在音频和视频传输…

    2022年4月9日
    96
  • log4j2的使用_logback log4j

    log4j2的使用_logback log4j一、目录简介基础部分日志框架简单比较(slf4j、log4j、logback、log4j2)log4j2基础知识log4j2实用配置实战部分slf4j+log4j2实际使用二、日志框架比较(slf4j、log4j、logback、log4j2)日志接口(slf4j)slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使

    2025年9月15日
    7
  • web图书销售管理系统_解读图书管理系统为书店带来的好处

    web图书销售管理系统_解读图书管理系统为书店带来的好处图书管理系统的出现,极大地推动了大中小型书店的发展,使书店管理工作更加高效成为书店管理的重要软件。其中图书管理系统给行业的好处更是大大方便了行业的运作。一、图书管理系统在书店中的应用,主要是为了进销存的目的,为了提高书店的效率加速发展,但没有选择合适的图书管理系统往往事与愿违。图书管理制度的选择是书店经营管理工作中的重要环节。图书管理系统,尤其是进销存功能,是书店在经营过程中对采购、销售、财务等进…

    2022年6月8日
    45
  • YUI Compressor完成代码混淆示例「建议收藏」

    YUI Compressor完成代码混淆示例「建议收藏」YUICompressor相关信息官网GitHub地址混淆单个js一般命令,java-jaryuicompressor-x.y.z.jarmyfile.js-omyfile-min.js若出现编码错误,就加上编码参数,比如你的文件的编码是utf-8编码,则命令如下,java-jaryuicompressor-x.y.z.jarmyfile.js-omyfile-min.j

    2022年7月18日
    17

发表回复

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

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