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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nginx搭建遇到的配置问题(持续更新)「建议收藏」

    nginx搭建遇到的配置问题(持续更新)「建议收藏」nginx搭建遇到的配置问题(持续更新)

    2022年4月22日
    37
  • group by详解

    group by详解一. 概述group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。二. 语法select 字段  from 表名 where  条件  group by    字段或者select 字段  from 表名 group by  字段  having  过滤条件注意:对于过滤条…

    2022年5月26日
    48
  • git切换远程分支然后怎么拉取(从远程拉取分支到本地分支)

    Git拉取远程分支到本地本地新建一个空白文件夹folder;进入folder目录,打开gitbash,用命令行初始化git仓库;$gitinit3.与远程仓库建立连接;//`http://xxx…`该网址为远程仓库`Game`的ip地址,可在远程仓库`Game`中进行查看$gitremoteaddoriginhttp://192.168.22.88:8000/102840/Game.git拉取远程分支到本地;//`cs`替换为远程分支名$gitf

    2022年4月18日
    159
  • jupyterlab和pycharm_jupyternotebook和pycharm的区别

    jupyterlab和pycharm_jupyternotebook和pycharm的区别目录一、pycharm项目新建及使用二、Jupyter项目新建及使用三、三种代码编辑方式对比一、pycharm项目新建及使用1.新建pycharmproject(第二节中有讲)2.新建python文件:右键点击新创建的pycharmproject->new->pythonfile3.写代码,右键点击“run***(文件名称)”即可4.还有一种写程序的方式是在pythonconsole,这里的代码是一行一行运行的,在本行写一个,点击enter就会运行二

    2022年8月25日
    3
  • linux 解压缩zip文件 unzip 命令详解[通俗易懂]

    linux 解压缩zip文件 unzip 命令详解[通俗易懂]linuxunzip命令详解功能说明:解压缩zip文件语法:unzip[-cflptuvz][-agCjLMnoqsVX][-P][.zip文件][文件][-d][-x]或unzip[-Z]补充说明:unzip为.zip压缩文件的解压缩程序。参数:-c将解压缩的结果显示到屏幕上,并对字符做适当的转换。-f更新现有的文件。

    2022年6月5日
    42
  • robots.txt详解[通俗易懂]

    robots.txt详解[通俗易懂]怎样查看robots文件?浏览器输入主域名/robots.txtrobots.txt的作用robots.txt文件规定了搜索引擎抓取工具可以访问网站上的哪些网址,并不禁止搜索引擎将某个网页纳入索引。如果想禁止索引(收录),可以用noindex,或者给网页设置输入密码才能访问(因为如果其他网页通过使用说明性文字指向某个网页,Google在不访问这个网页的情况下仍能将其网址编入索引/收录这个网页)。robots.txt文件主要用于管理流向网站的抓取工具流量,通常用于阻止Google.

    2022年5月1日
    43

发表回复

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

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