Activity与Fragment的生命周期
1、首先先上图
Activity Fragment
对比图
2、Activity的生命周期分析说明
onCreated()是activity第一次被启动时执行的,主要是初始化一些变量(启动第一步)
onRestart()是当前activity重新被启动时调用的;绑定一些监听器等(可见状态)
onStart()是activity界面被显示出来的时候执行的(可见状态)。
onResume()是当该activity与用户能进行交互时被执行,(能获取到焦点)
onPause()是另一个activity被启动,当前的activity就被暂停了,一般在该函数中执行保存当前的数据(被遮挡住)。
onStop()表示另一个activity被启动完成时,当前activity对用户同时又完全不可见时才调用的(不可见状态)。
onDestroy()是退出当前activity时调用的,当然如果程序中调用finish()或者说android系统当前资源不够用时就会被调用(销毁)。
当用多个activity在执行时,这时候android系统会自动将这些activity压入栈中并且总是显示最顶的那个activity,这个栈在android叫做task,但是这个栈只支持压入和弹出操作,不支持排序插入等操作。
Activity的7个生命周期函数中的onStop()函数被调用时是在其对应的activity被另外的activity完全遮挡的时候,如果只有部分遮挡,则不会被调用。部分遮挡一般是以消息activtiy的形式出现,这个只需在AndroidManifest.xml中将其对于的activity的主题设置theme中更改即可。当系统资源不够时,其中onPause(),onStop(),onDestroy()是有可能被系统kill掉的,但其它4个是不会被kill掉。
实验验证:连个Activity相互跳转,ActivityA设置一个button跳转到ActivityB
一开始程序运行时是首先调用第1个activity的onCreate(),onStart(),onResume()函数,然后按下button后,调用第1个activity的onPause(),和第2个activity的onCreate(),onStart(),onResume()函数,然后接着调用第1个activity的onStop(),当按下系统返回键时,这时会调用第2个activity的onPause(),接着是第1个activity的onRestart(),onStart(),onResume(), 最后是调用第2个的onStop()和onDestroy().
3、Fragment的生命周期分析说明
1. 当一个fragment被创建的时候,它会经历以下状态.
- onAttach()
- onCreate()
- onCreateView()
- onActivityCreated()
2. 当这个fragment对用户可见的时候,它会经历以下状态。
- onStart()
- onResume()
3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。
- onPause()
- onStop()
4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。
- onPause()
- onStop()
- onDestroyView()
- onDestroy() // 本来漏掉类这个回调,感谢xiangxue336提出。
- onDetach()
5. 就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
- onCreate()
- onCreateView()
- onActivityCreated()
6. fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。
- onAttached() —— 当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。
- onCreateView() —— 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。
- onActivityCreated() —— 当activity的onCreated()方法返回后调用此方法
- onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
- onDetach() —— 当fragment和activity分离的时候,调用这个方法。
一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的。
转载于:https://www.cnblogs.com/seven-sky/p/5316962.html
Activity与Fragment的生命周期相关推荐
- Activity与Fragment的生命周期详解
在安卓中Activity与Fragment是非常相似的两个类,它们各自都拥有自己的生命周期,且都可以用来显示布局文件中的视图.其中Activity是通过setContenView()显示视图,而Fra ...
- 安卓APP_ Fragment(3)—— Fragment的生命周期
摘自:安卓APP_ Fragment(3)-- Fragment的生命周期 作者:丶PURSUING 发布时间: 2021-04-16 22:32:12 网址:https://blog.csdn.ne ...
- android viewpager fragment 生命周期,ViewPager中Fragment的生命周期
网上有很多Fragment生命周期的帖子,但是看了一下,没有找到自己想了解的东西,于是决定自己动手体验一下这个生命周期.主要想了解以下几个问题: Activity中的Fragment的生命周期 Vie ...
- Fragment的生命周期同一Activity下不同Fragment之间的通信
Android开发:碎片Fragment完全解析(2) Fragment的生命周期 和Activity一样,Fragment也有自己的生命周期,理解Fragment的生命周期非常重要,我们通过代码的方 ...
- ViewPager与Fragment结合使用,以及切换的时候Fragment 的生命周期
下面要做的效果图下图 首先我们创建一个适配器如下 public class FraPagerAdapter extends FragmentPagerAdapter {private List< ...
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...
- ViewPager中Fragment的生命周期和FragmentPageAdapter与FragmentStatePageAdapter对其的影响
首先,我们创建一个Activity和一个Fragment,并在Fragment的各个生命周期打好日志,并把Fragments丢进Viewpager,这里我们往Viewpager里丢了3个Fragmen ...
- Fragment 的生命周期
Fragment的生命周期,按照正常顺序来看依次是: onAttach(),老式的方法是以Activity为参数,后来改成了context做参数.但是其实我实际项目中并没有重写这一方法,因为其父类方法 ...
- Android系列之Fragment(二)----Fragment的生命周期和返回栈
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
最新文章
- solr 下载 有dist目录的(6需要8)
- Java里面获取当前服务器的IP地址
- FreeMarker_模板引擎_代码自动生成器_源码下载
- iPhone清理喇叭灰尘_厉害了,iPhone 专用的网购商品历史最低价查询工具
- C++中对象初始化赋值是否需要调用operator=函数
- 2020服务器虚拟化市场容量,2020年服务器市场的五大技术和市场趋势
- NOIP模拟题 栅栏
- 学python数据分析心得体会800字_学习 Python 数据分析的正确姿势
- App测试工具大全,收藏这篇就够了
- Codeforces-785-D(范德蒙恒等式)
- 奔跑的小人,在屏幕上从左向右移动”的代码实现“小人在屏幕上从右向左移动” 按下键“A”,小人向左移动;按下键“D”,小人向右移动; 按下键“W”,小人向上移动;按下键“X”,小人向下移动; 通过主函数
- 拯救懒癌患者,京东订单自动写评价脚本!
- 前端用pdfjs实现预览PDF
- iOS 面试题集合~[有答案]
- mac os php Phalcon拓展
- 水文预报中的确定性系数如何计算确定
- 虚拟机无法玩腾讯游戏该怎么办
- 搭建个人站点——服务器环境(Linux)及工具准备(一)
- 全球市场动荡持续,澳元和液化天然气(LNG)价格跌至近11年最低水平
- HMS Core Discovery第15期回顾长文|构筑立体世界,共造沉浸式营销
热门文章
- 2021-07-07 https://github.com/pasu/ExamplesforCesium/wiki
- 2018-06-12 python读二进制文件
- 容器大小_C++复习篇(7)序列式容器vector
- 谷歌和ESRI眼中的Web Mercator
- 轻松解决idea一直卡在Resolving Maven dependencies的问题
- Adobe AIR移动App的互相调用实现方式
- VS2008创建win32动态链接库图文流程
- 小程序和网站中无限滚动的实现
- linux device attr,DEVICE_ATTR的使用
- 判断拐点的条件_专业的交易者如何捕捉振荡区间的双向拐点。上篇