Android activity的生命周期 详述
来源:互联网 发布:运动社交软件 编辑:程序博客网 时间:2024/05/07 22:14
Android activity的生命周期 详述
说到activity生命周期,也是基础中的基础,上次模拟面试就问到这个,尴尬的是竟然忘了,抽个时间好好的复习一下
贴一张网上找的图
oncreat
activity的创建函数,这个时候activity还不可见,可以将activity的初始化函数放在这里。
onstart
当oncreat执行后会执行,onrestart后面也会执行的函数,可以做重新唤起的操作,这时候已经可见但是还未放在前台
onresume
这个时候的activity已经可见,已经在运行中。
onpause
当activity被暂时遮盖,比如dialogo,比如锁屏(这时候因为activity处于栈顶所以执行pause不会执行stop)等activity将会执行此方法,同时activity跳转,返回home的都会执行此函数同时继续执行onstop,当activity在当前状态时候,可以通过调用onresume重新变为运行状态
onstop
当activity不可见的时候,这个时候不能进行交互等操作,activity处于停止运行状态
onrestart
当activity重新被唤起的时候,如果已经是stop状态,这个时候需要onrestart重新唤起activity,然后继续流程。
ondestory
销毁时候的执行的函数,通常做一些销毁前的数据回收等操作。
典型的应用
当activity启动时候会执行的生命周期是什么
我们将activity打印log看下具体的执行周期
根据我们的探讨也对照上面的周期图片,当一个activity creat时候,依次执行oncreat->onstart->onresume
这个时候activity 已经变得可见,运行中
我们继续的在这里进行操作,按下home键
因为activity被覆盖所以这个时候activity依次执行onpause->onstop
如果通过activity A启动activity B时候他们的周期会怎么变化呢
如果按照生命周期图示来的话,activity A会执行oncreat->onstart->onresume->onpause->onstop
activity B会执行oncreat->onstart->onresume
那具体是如何执行呢,是a执行完了后在执行b呢?我们照例来打印一下log
当activity创建
activity A会依次执行oncreat->onstart->onresume
当我们进行跳转后
发现依次执行activity a->oncreat b->onstart b->onresume b->onstop a
通过上面的log说明,当我们进行跳转时候,activity没有被覆盖时候会执行onpause,接着creat activity b,当b执行onresume后,完全覆盖掉a后,才会执行a的onstop
那我们再点击返回到a activity会执行什么操作
我们会发现依次执行 onpause b->onrestart a->onstart a->onresume a->onstop b->ondestroy b
当我们进行返回时,b执行onpause为返回做准备,当a完全显示后,执行b的销毁操作
当屏幕突然旋转会执行什么操作
这里我们重写onSaveInstanceState方法,如果activity销毁并重建的话,将会通过保存的数据进行重建。
我们发现 activity将会被销毁,同时在销毁前,onpause后会执行save操作,同时进行activity的重建
同时如果对activity的信息进行打印,会发现这是一个新的activity
- Android activity的生命周期 详述
- 详述Activity的生命周期
- Activity的生命周期详述
- Android activity的生命周期
- Android:Activity的生命周期
- Android Activity的生命周期
- Android Activity的生命周期
- Android Activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android Activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- linux c 一站式学习 指针数组的初始化
- STS 安装svn
- Bootstrap字体图标不显示问题
- First Day
- 认识ThreadLocal,多线程处理
- Android activity的生命周期 详述
- P_S数据不完整原因详析
- 视觉分类任务中处理不平衡问题的loss比较
- InnoDB RR隔离级别下INSERT SELECT两种死锁案例剖析
- python之kafka使用
- 继承中的特点
- Oracle中按照中文字段排序
- 分页查询
- 闭包