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


相关推荐

  • Python电影评论数据分析系统_echarts数据可视化

    Python电影评论数据分析系统_echarts数据可视化书接上文,继上文实现了《复仇者联盟4:终局之战》电影的影评数据分析采集之后,本文主要对获取到的影评数据进行一些可视化展示,主要的可视化展示手段是词云。这里我把200条左右的纯评论数据抽取解析了出来,贴在下面,感兴趣的可以拿去:=========================================================================…

    2022年9月13日
  • SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别

    SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别本文为我在浙江省北大信研院-智能计算中心-情感智能机器人实验室-科技委员会所做的一个分享汇报,现在我把它搬运到博客中。由于参与分享汇报的同事有许多是做其他方向的机器人工程师(包括硬件、控制等各方面并不是专门做SLAM的工程师),加上汇报的内容较多,因此在分享中我尽量使用简介的口语,而不出现复杂的公式。所以本文面向的是3D-slam方向的初学者。内容在整理中参考了许多链接,将放在最后。在文章结束后,我会把原PPT放在上面,需要者自取。另外打个广告,在slam方向有实习意愿的,请发送简历至zkyy8

    2022年8月23日
  • 对于Dos攻击的防御

    对于Dos攻击的防御smurf、trinoo、tfn、tfn2k以及stacheldraht是比较常见的DoS攻击程序“smurf攻击”,如何抵御Smurf是一种简单但有效的DDoS攻击技术,它利用了ICMP(Int

    2022年7月2日
  • Python 代码风格

    Python 代码风格

    2021年11月26日
  • linux netlink套接字学习资料

    linux netlink套接字学习资料

    2022年2月4日
  • 多节点服务器定时任务重复处理的问题

    多节点服务器定时任务重复处理的问题项目中有使用Spring定时执行任务的需求,用户可以自定义时间(半小时或整点)去生成需要的报表并发送邮件到用户自己的邮箱。项目里面提供的时间是半小时或整点去执行Spring定时任务,查询数据库中有哪些Schedule是满足要求的,然后去执行那些符合条件的任务。一切功能表现正常,但是项目部署在服务器上后,用户反映在同一时间会收到两封相同的邮件。我们检查了代码和SpringSchedule本

    2022年10月8日

发表回复

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

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