android生命周期有几种状态_两个activity跳转生命周期

android生命周期有几种状态_两个activity跳转生命周期Androidactivity生命周期(一)转载请注明出处:http://blog.csdn.net/chenlinfeng772885775/article/details/53672919Activity是Android中一块非常重要的部分,负责了和用户的交互,是用户能直接体验到的部分,我们只有了解了Activity的生命周期,才能更好的在各种情况下使用他。首先,他的生命周期大概可以用下

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Android activity 生命周期(一)

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

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

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

activity生命周期

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是正常启动的时候 )。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170693.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【《重构 改善既有代码的设计》学习笔记3】代码的坏味道[通俗易懂]

    【《重构 改善既有代码的设计》学习笔记3】代码的坏味道本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结!知道重构的原则和何时进行重构,那本篇就总结一些代码的坏味道,知道具体从哪些方面来进行重构。kent Beck提出用 味道来形容重构的时机。作者说:何时必须重构没有一个精确的衡量标准,任何量度规矩也比不上一个见识广博者的直觉。如果没有广博的见识…

    2022年2月27日
    34
  • 华为服务器重装操作系统,华为服务器安装操作系统[通俗易懂]

    华为服务器重装操作系统,华为服务器安装操作系统[通俗易懂]《华为服务器安装操作系统》由会员分享,可在线阅读,更多相关《华为服务器安装操作系统(24页珍藏版)》请在人人文库网上搜索。1、华为服务器安装操作系统1.把网线接到服务器管理口上,2288服务器管理口在服务器背后中下部位置,有Mgmt的指示字样。5885服务器管理口在服务器背后右中部位置,有Mgmt的指示字样。2.另一端连接到电脑上,并配上ip地址,192.168.2.1段地址。3.在浏览器输入管理…

    2022年9月1日
    5
  • C++ SetTimer

    C++ SetTimer我搞了好久 最终也没成功的让SetTimer 回调一个非静态成员函数不过问题是解决了那就是把成员函数和要用到的那个成员变量换成静态了(有点拆东墙补西墙了)不过方法肯定是有的UINT_PTRSetTimer(HWNDhWnd,//窗口句柄UINT_PTRnIDEvent,//定时器ID,多个定时器

    2025年8月14日
    1
  • phpstorm永久激活码2021【注册码】「建议收藏」

    phpstorm永久激活码2021【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    134
  • 开源 自由 java CMS – FreeCMS1.9 评论管理

    开源 自由 java CMS – FreeCMS1.9 评论管理

    2022年1月13日
    44
  • Maven配置Tomcat_maven和tomcat的区别

    Maven配置Tomcat_maven和tomcat的区别maven配置tomcat版本 <!–配置Tomcat插件–> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version&

    2022年10月21日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号