(Android) Activity生命周期总结
活动(Activity)的生命周期
0.前言
熟悉Activity的生命周期,可以让开发者更加了解程序的运行过程,有利于写出更加连贯流畅的程序,而且相关于合理管理应用资源,提供更好的用户体验。
1.返回栈
理解“后进先出”,如下图所示。
一个个的活动(Activity)入栈,后来的层叠在先前创立的活动(Activity)之上,遵循“后进先出”的原则。点击Back键或做出后退的手势,即将栈顶,也就是最上面的活动(Activity)销毁,然后和栈顶下一个活动交互。
2.活动状态
活动(Activity)有4种状态,分别是运行(running)、暂停(paused)、停止(stop)以及销毁(destroyed)。
- 运行(running)
- 暂停(paused)
- 停止(stop)
- 销毁(destroyed)
3.活动的“动作”
Activity类中定义了7个回调函数,它们贯穿了一个活动的整个生存周期,下面一起来看看这7个函数。
- onCreate()
- onStart()
- onResume()
- onPause()
- onStop()
- onDestroy()
- onRestart()
- 完整生存期
- 可见生存期
- 前台生存期
4.实践小程序
在主页面程序中加入onCreate、onStop等函数的重载,观察在跳到其他页面(两种情况,一种是主页面完全不可见,即完全被覆盖;另一种是跳出一个弹窗活动,主页面没有被完全覆盖)时,主页面程序所做的事情。
- 当主页面程序启动的时候,走的流程是onCreate->onStart->onResume,然后进入了运行状态,User与之互动。
- 当在主页面点击按钮,跳转到另一个能够完全覆盖主页面的活动时,主页面走的流程是onPause->onStop,从而进入了停止状态(stop)。再点击Back键,回到主页面,走的是onRestart->onStart->onResume,主页面重新进入运行状态(running)
- 当在主页面点击按钮,弹出一个不完全覆盖主页面的对话框时(如下图所示),主页面中调用了onPause,进入暂停状态(paused),点击对话框外面的区域回到主页面时,调用了onResume。
- 在主页面运行状态时,点击Back按钮,回到手机的主界面,程序走的是onPause->onStop->onDestroy,主页面就成了销毁状态(destroyed)。
参考:
《第一行代码》
Android官方教程
(Android) Activity生命周期总结相关推荐
- Android Activity 生命周期详解及监听
前言 系列文章: Android Activity 与View 的互动思考 Android Activity 生命周期详解及监听 Android onSaveInstanceState/onResto ...
- Android activity 生命周期(一)
Android activity 生命周期(一) 转载请注明出处:http://blog.csdn.net/chenlinfeng772885775/article/details/53672919 ...
- Android activity生命周期
这篇博客主要包含以下知识点: activity介绍. activity生命周期的详细过程(不同情况下的变化以及状态的改变).finish和onDestory方法的关系.onSaveInstanceSt ...
- Android Activity生命周期举例说明(图文)
同学电话面试提及到Activity生命周期的详细说明,现整理如下: 转载请标明姓名及出处:大飞_Rflyee - http://blog.csdn.net/rflyee/article/details ...
- android activity生命周期_Android岗高频面试题合一集,看你能答出几题?
前言 面试季黄金时期来袭,想必许多朋友在这时有找工作.换工作.跳槽涨薪等想法,但你们都有一个相同的过程那就是面试.大家肯定想知道面试时都问哪些面试相关问题,所以就去网上查找题去刷题,为了省去大家找题的 ...
- android 生命周期管理,Android Activity生命周期和堆栈管理的详解_Android_脚本之家...
Activity的生命周期 Activity是Android中的四大组件之一,也是最基本,最重要的组件,是android系统提供一个可视化的,能与用户交换的组件. 系统提供的组件,不需要用户实例化,用 ...
- Android Activity 生命周期和重要的相关函数(基础一)
总结: 1.oncreate 2.onstart 可见但不交互 3.onrestart 从其他界面重新调转过来 4.onresume 可交互 5.on ...
- xamarin Android activity生命周期详解
学Xamarin我为什么要写这样一篇关于Android 的activity生命周期的文章 已经学Xamarin android有一段时间了,现在想起当初Xamarin也走了不少的弯路.当然Xamari ...
- Android Activity生命周期管理
http://blog.csdn.net/thl789/article/details/6628463 本文描述Android中Activity的状态,Activity的状态转换,从而总结了Activ ...
- 04 Android Activity生命周期
文章目录 1 Activity 生命周期 1.1 生命周期 1.2 Android 开发的规则 2 设备配置变化,Activity被销毁 3 进出停止态 3.2 进出停止态的过程 4 进出暂停态 4. ...
最新文章
- NEO从源码分析看NEOVM
- mysql获取当前时间,前一天,后一天(执行效率比较高)
- 【渝粤题库】陕西师范大学720001 分子生物学
- 【ElasticSearch】Es 源码之 PersistentTasksExecutorRegistry 源码解读
- 比较默认对象和默认约束的异同_UE4对象类类型引用和类默认对象(Class Default Object,简称CDO)...
- Scikit-Learn库概述
- 【java】详解java中的注解(Annotation)
- html5晋级之路-学习笔记表单
- 论文阅读笔记(十二)——U-Net: Convolutional Networks for Biomedical Image Segmentation
- latex longtable caption长度提前换行解决方案
- 桑佛德大学计算机科学,桑佛德大学
- 智能商场管理系统(可当做毕设)
- 驾考系统C#winform驾照考试系统
- 开源|AAAI2021杰出论文-三维重建新探索:让自监督信号更可靠!
- 告别传智,重新上路----近5年来的总结及未来5年的计划
- 微信小程序:拼多多推客开发
- Android实践:做一个可视频交互的智能小车
- 蒙特卡洛方法的收敛性和误差
- ThreadLocal 源码深析及使用示例
- 计算机中的微信无法启动,无法打开微信计算机版本文件如果无法打开微信计算机版本怎么办...
热门文章
- 【TCP/IP】概述网络分层以及协议介绍
- XP系统的缩略图原理,实现缩略图与原图不同
- java swt griddata_[代码全屏查看]-SWT中GridLayout 和GridData的使用
- Windows、mac字体安装教程
- 文件操作中SaveFileDialog的用法
- BS模式开发之Web编程
- Flask 学习-28.flask_jwt_extended插件 JWT 中存储额外数据(additional_claims)
- 仿百度文库、豆丁文档网站源码在线文档分享系统最新版+带全套工具
- 【数据科学家】每个数据科学家都应该学习4个必备技能
- 微信客服接口php,企业客服接口说明