activity生命周期的七种方法_九分之五大还是九分之四大

activity生命周期的七种方法_九分之五大还是九分之四大Activity生命周期是指一个Activity从创建到销毁的全过程。下图是Activity的生命周期模型。一、生命周期五种状态(1)启动状态:Activity的启动状态很短暂,当Activity启动后便会进入运行状态。(2)运行状态:Activity在此状态时处于屏幕最前端,它是可见、有焦点的,可以与用户进行交互。如单击、长按等事件。即使出现内存不足的情况,Android…

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

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

Activity生命周期是指一个Activity从创建到销毁的全过程。下图是Activity的生命周期模型。

activity生命周期的七种方法_九分之五大还是九分之四大

一、生命周期五种状态

(1)启动状态:Activity的启动状态很短暂,当Activity启动后便会进入运行状态。

(2)运行状态:Activity在此状态时处于屏幕最前端,它是可见、有焦点的,可以与用户进行交互。如单击、长按等事件。即使出现内存不足的情况,Android也会先销毁栈底的Activity,来确保当前的Activity正常运行。

    (3)暂停状态:在某些情况下,Activity对用户来说仍然可见,但它无法获取焦点,用户对它操作没有没有响应,此时它处于暂停状态。

(4)停止状态:当Activity完全不可见时,它处于停止状态,但仍然保留着当前的状态和成员信息。如系统内存不足,那么这种状态下的Activity很容易被销毁。

   (5)销毁状态:当Activity处于销毁状态时,将被清理出内存。

 

二、生命周期七种方法

(1)onCreate()方法:在Activity创建时调用,通常做一些初始化设置。

(2)onStart()方法:在Activity即将可见时调用。

(3)onResume()方法:在Activity获取焦点开始与用户交互时调用。

(4)onPause()方法:在当前Activity被其他Activity覆盖或锁屏时调用。

(5)onStop()方法:在Activity对用户不可见时调用。

(6)onDestroy()方法:在Activity销毁时调用。

(7)onRestart()方法:在Activity从停止状态再次启动时调用

 

三、onCreate和onStart之间有什么区别?

(1)可见与不可见的区别。前者不可见,后者可见。

(2)onCreate方法只在Activity创建时执行一次,而onStart方法在Activity中被多次调用。onCreate能做的事onStart其实都能做,但是onstart能做的事onCreate却未必适合做。如前文所说的,setContentView和资源初始化在两者都能做,然而想动画的初始化在onStart中做比较好。

 

四、onStart方法和onResume方法有什么区别?

(1)是否在前台。onStart方法中Activity可见但不在前台,不可交互,而在onResume中在前台。

(2)职责不同,onStart方法中主要还是进行初始化工作,而onResume方法,根据官方的建议,可以做开启动画和独占设备的操作。

 

五、onPause方法和onStop方法有什么区别?

(1)是否可见。onPause时Activity可见,onStop时Activity不可见,但Activity对象还在内存中。

(2)在系统内存不足的时候可能不会执行onStop方法,因此程序状态的保存、独占设备和动画的关闭、以及一些数据的保存最好在onPause中进行,但要注意不能太耗时。

 

六、切换Activity的生命周期和横竖屏的生命周期

(1)切换Activity时各方法的执行次序是(A)onPause→(B)onCreate→(B)onStart→(B)onResume→(A)onStop 。(onPause方法将会释放掉很多系统资源,为切换Activity提供流畅性的保障,而不需要再等多两个阶段,这样做切换更快。

(2)当手机横竖屏切换时,会根据AndroidManifest.xml文件中Activity的configChanges属性不同而调用不同的生命周期方法。当使用默认属性时,Activity生命周期会依次调用onCreate()onStart()onResume()方法,当进行横竖屏切换时,调用方法依次是onPause()onStop()onDestroy()onCreate()onStart()onResume()方法。

 

七、 Activity的四种启动模式:standard、singleTop、singleTask、singleInstance

(1)standard模式:Standard模式是Android的默认启动模式,你不在配置文件中做任何设置,那么这个Activity就是standard模式,这种模式下,Activity可以有多个实例,每次启动Activity,无论任务栈中是否已经有这个Activity的实例,系统都会创建一个新的Activity实例

(2)singleTop模式:SingleTop模式和standard模式非常相似,主要区别就是当一个singleTop模式的Activity已经位于任务栈的栈顶,再去启动它时,不会再创建新的实例,如果不位于栈顶,就会创建新的实例。

(3)singleTask模式:SingleTask模式的Activity在同一个Task内只有一个实例,如果Activity已经位于栈顶,系统不会创建新的Activity实例,和singleTop模式一样。但Activity已经存在但不位于栈顶时,系统就会把该Activity移到栈顶,并把它上面的activity出栈。

(4)singleInstance模式:singleInstance模式也是单例的,但和singleTask不同,singleTask只是任务栈内单例,系统里是可以有多个singleTask Activity实例的,而singleInstance Activity在整个系统里只有一个实例,启动一singleInstanceActivity时,系统会创建一个新的任务栈,并且这个任务栈只有他一个Activity。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/179187.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • scrapy爬虫,爬取图片

    scrapy爬虫,爬取图片

    2021年11月19日
  • 流量分析入门

    流量分析入门前言个人一直对流量分析…正好看到了一些相关书籍资料,自己向前辈师傅们学习以后整理一些资料来总结一下互联网五层模型在计算机网络这门课中介绍了OSI模型及互联网五层模型:在我们使用抓包软件进行流量分析的时候,抓到的包往往含有数据链路层、网络层、传输层,应用层四个部分,其中一部分在传递到不同层面的时候会被丢弃。我们的wireshark抓的包工作在数据链路层,而burpsuite抓的http包则工作在应用层wireshark的用法打开wireshark,可以看到这是我们的一些接口,我现在用的是Wif

  • 英文搜索网站_dfs树

    英文搜索网站_dfs树给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例 1:输入:board = [[“o”,”a”,”a”,”n”],[“e”,”t”,”a”,”e”],[“i”,”h”,”k”,”r”],[“i”,”f”,”l”,”v”]], words = [“oath”,

  • 3种常用的图片压缩方法

    3种常用的图片压缩方法3种常用的图片压缩方法:把图片上传到阿里云或七牛云,借用云端的图片缩放技术进行压缩。后端对图片尺寸大小进行压缩。前端用Canvas作为媒介压缩图片。作为一名前端攻城狮,主要介绍用Canvas作为媒介压缩图片。…

  • 阅读《构造之法》第8,9,10章读后感

    阅读《构造之法》第8,9,10章读后感

  • .py和.ipynb的小知识

    .py和.ipynb的小知识目录1.相同点2.区别3.转换4.类比1.相同点用Python语言编写的源代码文件,其文件后缀是“.py”或“.ipynb”。用Python语言编写的源代码文件,其文件后缀是“.py”或“.ipynb”。2.区别.py:".py"文件是标准的Python源代码文件,通常情况下,使用“.py”的python源代码文件。可以用Spyder编辑并运行.py文件。也可…

    2022年10月23日

发表回复

您的电子邮箱地址不会被公开。

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