活动(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生命周期总结相关推荐

  1. Android Activity 生命周期详解及监听

    前言 系列文章: Android Activity 与View 的互动思考 Android Activity 生命周期详解及监听 Android onSaveInstanceState/onResto ...

  2. Android activity 生命周期(一)

    Android activity 生命周期(一) 转载请注明出处:http://blog.csdn.net/chenlinfeng772885775/article/details/53672919 ...

  3. Android activity生命周期

    这篇博客主要包含以下知识点: activity介绍. activity生命周期的详细过程(不同情况下的变化以及状态的改变).finish和onDestory方法的关系.onSaveInstanceSt ...

  4. Android Activity生命周期举例说明(图文)

    同学电话面试提及到Activity生命周期的详细说明,现整理如下: 转载请标明姓名及出处:大飞_Rflyee - http://blog.csdn.net/rflyee/article/details ...

  5. android activity生命周期_Android岗高频面试题合一集,看你能答出几题?

    前言 面试季黄金时期来袭,想必许多朋友在这时有找工作.换工作.跳槽涨薪等想法,但你们都有一个相同的过程那就是面试.大家肯定想知道面试时都问哪些面试相关问题,所以就去网上查找题去刷题,为了省去大家找题的 ...

  6. android 生命周期管理,Android Activity生命周期和堆栈管理的详解_Android_脚本之家...

    Activity的生命周期 Activity是Android中的四大组件之一,也是最基本,最重要的组件,是android系统提供一个可视化的,能与用户交换的组件. 系统提供的组件,不需要用户实例化,用 ...

  7. Android Activity 生命周期和重要的相关函数(基础一)

    总结: 1.oncreate 2.onstart            可见但不交互 3.onrestart         从其他界面重新调转过来 4.onresume       可交互 5.on ...

  8. xamarin Android activity生命周期详解

    学Xamarin我为什么要写这样一篇关于Android 的activity生命周期的文章 已经学Xamarin android有一段时间了,现在想起当初Xamarin也走了不少的弯路.当然Xamari ...

  9. Android Activity生命周期管理

    http://blog.csdn.net/thl789/article/details/6628463 本文描述Android中Activity的状态,Activity的状态转换,从而总结了Activ ...

  10. 04 Android Activity生命周期

    文章目录 1 Activity 生命周期 1.1 生命周期 1.2 Android 开发的规则 2 设备配置变化,Activity被销毁 3 进出停止态 3.2 进出停止态的过程 4 进出暂停态 4. ...

最新文章

  1. NEO从源码分析看NEOVM
  2. mysql获取当前时间,前一天,后一天(执行效率比较高)
  3. 【渝粤题库】陕西师范大学720001 分子生物学
  4. 【ElasticSearch】Es 源码之 PersistentTasksExecutorRegistry 源码解读
  5. 比较默认对象和默认约束的异同_UE4对象类类型引用和类默认对象(Class Default Object,简称CDO)...
  6. Scikit-Learn库概述
  7. 【java】详解java中的注解(Annotation)
  8. html5晋级之路-学习笔记表单
  9. 论文阅读笔记(十二)——U-Net: Convolutional Networks for Biomedical Image Segmentation
  10. latex longtable caption长度提前换行解决方案
  11. 桑佛德大学计算机科学,桑佛德大学
  12. 智能商场管理系统(可当做毕设)
  13. 驾考系统C#winform驾照考试系统
  14. 开源|AAAI2021杰出论文-三维重建新探索:让自监督信号更可靠!
  15. 告别传智,重新上路----近5年来的总结及未来5年的计划
  16. 微信小程序:拼多多推客开发
  17. Android实践:做一个可视频交互的智能小车
  18. 蒙特卡洛方法的收敛性和误差
  19. ThreadLocal 源码深析及使用示例
  20. 计算机中的微信无法启动,无法打开微信计算机版本文件如果无法打开微信计算机版本怎么办...

热门文章

  1. 【TCP/IP】概述网络分层以及协议介绍
  2. XP系统的缩略图原理,实现缩略图与原图不同
  3. java swt griddata_[代码全屏查看]-SWT中GridLayout 和GridData的使用
  4. Windows、mac字体安装教程
  5. 文件操作中SaveFileDialog的用法
  6. BS模式开发之Web编程
  7. Flask 学习-28.flask_jwt_extended插件 JWT 中存储额外数据(additional_claims)
  8. 仿百度文库、豆丁文档网站源码在线文档分享系统最新版+带全套工具
  9. 【数据科学家】每个数据科学家都应该学习4个必备技能
  10. 微信客服接口php,企业客服接口说明