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


相关推荐

  • 软件测试所需要掌握的技术和知识_软件测试主要学的内容有哪些

    软件测试所需要掌握的技术和知识_软件测试主要学的内容有哪些分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.netDefinitionAttachadditionalresponsibilitiestoanobjectdynamically.Decoratorsprovideaflexiblealternativetosubcla…

    2022年10月6日
    3
  • SpringFramework、SpringBoot、SpringCloud的区别

    SpringFramework、SpringBoot、SpringCloud的区别文章目录SpringSpringFrameworkSpringMVCSpringBootSpringCloud总结Spring是一个技术生态体系,是集大成者。它包含了SpringFramework、SpringBoot、SpringCloud等(还包括SpringClouddataflow、springdata、springintegration、springbatch、springsecurity、springhateoas),可以参考链接:https://spring.

    2022年6月1日
    29
  • windows route add添加静态路由_centos route add

    windows route add添加静态路由_centos route addWindowsrouteaddcommandfailed出现此错误需要管理员安装openvpn和管理员运行vpngui

    2022年8月11日
    13
  • 基于python的情感分析案例_关于python爬虫的情感分析

    基于python的情感分析案例_关于python爬虫的情感分析今天给大家分享的是通过情感词典来对文本进行情感分析最后计算出情感得分通过情感得分来判断正负调性主要步骤:数据准备本次情感词典采用的是BosonNLP的情感词典,来源于社交媒体文本,所以词典适用于处理社交媒体的情感分析本次分析准备的文本数据有:BosonNLP情感词典停用词表否定词表程度副词表生成停用…

    2022年8月23日
    6
  • 视频直播技术详解之推流和传输

    视频直播技术详解之推流和传输声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载。作者:七牛云责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qshuguang2008申请入群,备注姓名+公司+职位。七牛云于6月底发布了一个针对视频直播的实时流网络LiveNet和完…

    2022年7月24日
    15
  • Android仿QQ登录界面示例,实现登录、注册功能。[通俗易懂]

    Android仿QQ登录界面示例,实现登录、注册功能。[通俗易懂]Android开发经常用到注册、登录功能,于是便整理出一般通用的登录界面,并实现其相应功能。供读者参阅。此项目包含三个活动,即登录,注册界面,找回密码。

    2022年6月4日
    35

发表回复

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

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