首页 > 其他分享 >Activity的生命周期简述

Activity的生命周期简述

时间:2023-01-10 16:58:11浏览次数:43  
标签:状态 onResume 生命周期 onStart 简述 Activity onRestart 交互

一、Activity的生命周期简述

在讲onStart()和onResume()的区别之前,必须清楚Activity的四种状态:

1.Running状态:一个新的Activity的启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并,可与用户交互的激活装态;
2.Paused状态:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态,此时它依然与窗口管理器保持连接,系统继续维护其内部状态,他仍然可见,但是它已经失去焦点,故不可与用户交互。
3.Stopped状态:当Activity不可见时,Activity处于Stopped状态。当Activity处于此状态时,一定要保存当前数据和当前的UI状态,否则一旦Activity退出或关闭时,当前的数据和UI状态就丢失了。
4.Killed状态: Activity被杀掉以后或者被启动以前,处于Killed状态。这是Activity已从Activity堆栈中移除,需要重新启动CIA可以显示和使用。
以上四种状态,Running状态和Paused状态是课件的,Stopped状态和Killed状态时不可见的。

在这里插入图片描述

二、OnStart()和OnResume()方法的区别

区别:

onStart()通常作用于用户初始化APP,或onStop()方法之后(用户按下home键,activity变为后台)之后用户再切回这个activity就会调用onRestart()然后调用onStart(),在OnStart()方法在被调用的时候,Activity已经可见,但是此时的Activity尚未出现在前台,不能与用户进行交互可理解为Activity已经出现了,但是我们无法与其进行交互;
onResume()是onPaused()(activity被另一个透明或者Dialog样式的activity覆盖了)之后dialog取消,activity回到可交互状态,调用onResume(),简单地讲OnResume()就是使OnStart()方法之后的Activity变为可交互的状态;

总结

 

onResume的调用途径更多,用处就是获得焦点使得Activity处于可交互状态。

包括Activity创建后和重新启动。我们经常会看到有些窗口被另外一个透明窗口覆盖,虽然能看到但无法对他进行操作,这时的Activity就没有获得用户焦点。

生命周期有两种:

1、开始创建Activity->onCreate()->onStart()->onResume()->获得焦点可交互状态。

2、不可见状态->onRestart()->onStart()->onResume()->获得焦点可交互状态。

 

onRestart 当处于非栈顶状态的活动需要再次返回栈顶,展现给用户的时候,触发该方法。

也就是说执行了onStop()且没有执行onDestroy()的Activity被重新激活时,就会调用onRestart()方法。

生命周期只有一种:Running状态->onPause()->onStop()->不可见状态->onRestart()->onStart->onResume()->获得焦点可交互状态。

标签:状态,onResume,生命周期,onStart,简述,Activity,onRestart,交互
From: https://www.cnblogs.com/skynight/p/17040736.html

相关文章

  • 第二节:跨平台兼容/条件编译、页面路由(pages.json)、页面通讯(5种)、页面生命周期
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblog......
  • 生命周期
    初步认识生命周期的创建和销毁过程生命周期是什么?生命周期中有哪些东西?在我们的组件中,从创建到运行到销毁的阶段叫做生命周期。从我们数据被定义,到渲染到页面上,然后进行......
  • 脚本生命周期
    问题待解决不在脚本中写构造函数Unity脚本生命周期初始阶段Awake()OnEnable()Start()物理阶段FixedUpdate()0.02s游戏逻辑Update()60hzLateUpdate()......
  • 学习笔记——在IDEA中创建Maven工程之HelloWord;Maven中常见的问题;Maven核心概念之POM
    2023-01-08一、在IDEA中创建Maven工程之HelloWord(1)新建一个Maven工程  最后点击“finish”,完成项目创建(2)在创建的项目下,选中“maven_demo”,右击新建“Module”,选......
  • Spring之bean的七步生命周期
    bean的七步生命周期(1)调用无参数构造方法创造bean实例(2)调用set方法对bean的属性及其他bean的引用属性进行设置(3)把bean实例传递给bean的后置处理器方法postProcessBeforeI......
  • 学习笔记——过滤器、过滤器的HelloWord、过滤器生命周期
    2023-01-06一、过滤器(Filter)1、概念:Filter是一个实现了特殊接口(Filter)的java类,实现对请求资源(jsp,servlet,html)的过滤的功能。过滤器是一个运行在服务器的程序,优先于请求......
  • 002es生命周期之索引别名的使⽤
    简介:es之索引别名的使⽤别名有什么用在开发中,随着业务需求的迭代,较⽼的业务逻辑就要⾯临更新甚⾄是重构,⽽对于es来说,为了适应新的业务逻辑,可能就要对原有的索引做⼀些修......
  • SPI简述
    特点SPI也就是串行外设接口,是一种全双工的同步串行总线,一个主机与多个从机通信,它没有应答机制,广泛用于ADC,LCD与MCU的通信,通讯速率较高。接线时钟线:SCK片选线:CS(NSS,SS)......
  • Android四大基本组件介绍与生命周期
    ​​Android四大基本组件介绍与生命周期​​Android四大基本组件分别是Activity,Service服务,ContentProvider内容提供者,BroadcastReceiver广播接收器。一:了解四大......
  • spring中Bean生命周期
    1.普通java对象创建过程举例:BusinessServicebusinessService=newBusinessService();编译:将.java文件编译成class文件加载:等到类需要被初始化时(比如new)class文件被虚......