Android activity 生命周期(一)

转载请注明出处:http://blog.csdn.net/chenlinfeng772885775/article/details/53672919

Activity是Android中一块非常重要的部分,负责了和用户的交互,是用户能直接体验到的部分,我们只有了解了Activity的生命周期,才能更好的在各种情况下使用他。

首先,他的生命周期大概可以用下面两个图来概括:

图片选自Android官方材料

其实两个图片是大同小异的,上图侧重于过程,在什么情况会触发什么方法都有标注出来。

接下来按照普通的生命周期顺序来逐个分析。

首先是onCreate()。他在Activity刚启动的时候调用,在一个完整的生命周期中只出现一次,常用来做一些启动逻辑,比如设置交互界面,初始化类变量等等。在这个方法中海油一个savedInstanceState 参数,用于保存Activity的一些数据,避免Activity被异常杀死时重要数据丢失。这个在后面会提到。

紧接着这个方法的是onStart()。他在Activity从hidden状态唤醒时经由onRestart()调用,可以根据一些具体逻辑在这里进行相关处理。

然后是onResume()。执行到这里的时候Activity已经是在前台可见了,并可以和用户交互了。这里一般放一些在onPause()中释放的资源的初始化操作。

当用户界面仍有部分可见但是已经失去焦点的时候,将会调用onPause()。我们应该在这里停止相关操作,并保存用户信息,释放一些不需要的资源。当焦点重新回到该Activity时会调用onResume()。

当界面不可见时,将会调用onStop()。在这里我们可以执行更复杂,cpu操作更多的关闭操作,释放资源。此时如果界面重新返回前台,会调用onRestart(),onStart()….

最后Activity会调用onDestroy()销毁Activity。因为onStop()已经可以释放大多数的资源,最后在这里释放剩余的东西即可。要记得后台线程等资源要及时释放。

到这里一个正常的Activity流程就走完了,后面几个方法都提到了释放资源,可能大家会奇怪他们的区别,其实对照流程图就明白了,每个方法所能释放的资源跟他们在当时的状态被重新唤醒时回到哪一个步骤是相关的,要根据具体的业务流程来判断。

activity有正常的生命周期就有异常的生命周期。异常的生命周期通常是activity被系统回收或者设备的Configuration变化(常见的有横竖屏切换)。

异常生命周期和正常的周期相比他多了两个onSaveInstanceState()和onRestoreInstanceState()。大致周期为onCreate,onstart,onResume,onPause,onSaveInstanceState,onStop,onDestroy,onCreate,onStart,onRestoreInstanceState,onResume.onSaveInstanceState()可以保存这个activity的相关数据,而在onRestoreInstanceState()可以恢复那些数据。其实在onCreate()中也有saveInstance参数,区别是onRestoreInstanceState()被调用的bundle肯定不为空,而onCreate()中的bundle有可能为空(比如当activity是正常启动的时候 )。

Android activity 生命周期(一)相关推荐

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

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

  2. Android activity生命周期

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

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

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

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

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

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

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

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

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

  7. xamarin Android activity生命周期详解

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

  8. Android Activity生命周期管理

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

  9. 04 Android Activity生命周期

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

最新文章

  1. OpenYurt — Yurtctl
  2. Linux下使用curl进行http请求(转)
  3. 倾斜模型精细化处理_推荐一款好用的倾斜摄影精细化单体建模软件——OSketch...
  4. asp.net mvc 接入阿里大于 短信验证码发送
  5. opencv+python机读卡识别
  6. idea插件安装在哪个目录_从零开始编写自己需要的IntelliJ IDEA 插件
  7. Analytic Functions in Oracle 8i and 9i
  8. php vue是什么,vue.js是什么软件
  9. 【问题求教】mapgis67文件转换失败
  10. 《最受欢迎的男友职业排行榜Top10》
  11. WPS 2019 用户界面分析
  12. 2022 Google I/O 谷歌开发者大会汇总
  13. 基础 八大疑问词+翻译
  14. 图形虚拟化技术为每个英特尔®显卡家族提供支持
  15. 计算机研究生院校全国排名2015,2018年武书连中国大学排行榜(完整版)_计算机考研院校...
  16. (Python语法篇)4.序列(3)字典
  17. ins是什么与Instagram有什么区别
  18. Pyecharts绘制阶梯图
  19. 上海高中计算机知识点总结,上海高中高考数学知识点总结(大全)
  20. 学习Mathematica(四)——函数与绘图

热门文章

  1. “简单”和“勤奋”就是只围绕团队的理念和目标去工作,而不会因为其他的问题或内耗来分散团队的力量和注意力。为此,管理者要为团队创造一个积极向上、团队合作、充满激情的工作氛围。...
  2. SpringBoot集成activiti工作流
  3. npm插件XLSX使用记录
  4. HttpClient的使用
  5. ### CausDriver com.mysql.jdbc.Driver claims to not accept jdbcUrl, mysql:jdbc://localhost:3306/mysql
  6. PHP的调试环境程序集成包----phpStudy
  7. 生活-晒黑后变白的好方法
  8. GNSS双RTK技术 提高自动驾驶高精定位的可靠性
  9. 可怕!数据库竟然打破安迪-比尔定律
  10. 语文世界杂志语文世界杂志社语文世界编辑部2022年第9期目录