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。

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

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

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


相关推荐

  • MySQL 字符串数字转换

    MySQL 字符串数字转换1方法一:SELECTCAST(‘123’ASSIGNED);2方法二:SELECTCONVERT(‘123’,SIGNED);3方法三:SELECT’123’+0; 1//数字转字符串2CONCAT()

    2022年5月30日
    39
  • 2021sublime4113 激活码-激活码分享

    (2021sublime4113 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月27日
    223
  • Python Web 框架工具包 werkzeug「建议收藏」

    Python Web 框架工具包 werkzeug「建议收藏」一、什么是werkzeugwerkzeug官方的介绍说是一个WSGI工具包,不是一个web服务器,也不是一个web框架,它可以作为一个Web框架的底层库,因为它封装好了很多Web框架的东西,例如Request,Response等等;例如我最常用的Flask框架就是一Werkzeug为基础开发的。Werkzeug教程基础中文文档二、Werkzeug实现密码校…

    2022年10月7日
    6
  • windows下安装mysql

    windows下安装mysql

    2021年11月27日
    84
  • scratch编程滑雪者游戏教程

    scratch编程滑雪者游戏教程首先我们来看一下效果:​​​​​​​​​​​​​​​​我们从演示中能看出4个角色:企鹅、大树、旗子和装饰用的坎,我们通过键盘操控企鹅滑雪躲避树并捡起旗子,现在我们就来看看是怎么编的吧!首先我们要画出企鹅的造型,造型的排列一定不能乱哦!​下面是具体程序:上面的程序会根据当前的造型而做出不同的变化接着我们来看树的程序:旗子的程序和大树的几乎一模一样,就只有碰到滑雪者的一部分有点区别:最最最简单的一部分就是坎的程序了,坎只管滑行碰到边缘在删除就可以了,在中途什么也不用管这个

    2022年6月17日
    84
  • android 自定义控件 使用declare-styleable进行配置属性(源码角度)「建议收藏」

    android 自定义控件 使用declare-styleable进行配置属性(源码角度)「建议收藏」最近在模仿今日头条,发现它的很多属性都是通过自定义控件并设定相关的配置属性进行配置,于是便查询了解了下declare-styleable,下面我把自己的使用感受和如何使用进行说明下。declare-styleable:declare-styleable是给自定义控件添加自定义属性用的。官方的相关内部控件的配置属性文档:http://developer.android.com/refer

    2022年7月13日
    21

发表回复

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

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