iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android Activity生命周期调用的理解
  • 542
分享到

Android Activity生命周期调用的理解

2024-04-02 19:04:59 542人浏览 安东尼
摘要

目录状态启动模式操作APP时生命周期调用Activity异常生命周期总结状态 活动存放在一个叫返回栈的一个集合,当重新打开一个Activity时,它就会出现在栈顶。当要销毁该活动时

状态

活动存放在一个叫返回栈的一个集合,当重新打开一个Activity时,它就会出现在栈顶。当要销毁该活动时,调用finish()或back,栈顶的活动就会出栈。

运行状态:一个活动处于栈顶时

暂停状态:不处于栈顶,但仍然可见。(失去焦点,非全屏或透明的activity放置在栈顶)

停止状态:不处于栈顶,也不可见,但还是会为它保留一些变量的相关数据。(被覆盖)

销毁状态:在栈中移除(killed状态)

四种状态转换

启动模式

standard模式:Activity的默认启动模式。对Activity的启动和切换没有任何限制,任何时候我们通过startActivity或startActivityForResult()启动一个standard模式的activity时,系统都会创建实例并放置到栈顶。【通过intent跳转的时候会创建新的activity实例,重复创建】

singleTop模式:设置成该模式时,任务栈的栈顶不能同时存在两个Activity的实例。但在整个栈中,可以存在多个实例。防止同一个Activity重复创建或启动多次【通过intent跳转的activity在栈顶,直接复用;若栈顶没有,重新创建】

singleTask模式:整个任务栈中只能存在该activity的一个实例。重复启动时,系统会销毁该实例之前的所有其他activity,将该activity移至栈顶。【app在启动时都会创建一个任务栈,应用内被创建的activity都会放进这个栈内。只要activity实例被创建过,再次创建时都直接复用已有实例】

singleInstance模式:该模式下的Activity都将独立存在一个任务栈下,并且不能重复创建或启动。当启动一个singleInstance模式的Activity时,系统会为应用创建一个新的前台任务栈,将Activity置于栈内。【整个Android系统中实例唯一,可以让别人的程序直接复用这个Activity】

其他时候要启动其他非singleInstance模式的Activity时,系统创建另一个前台任务栈,将非singleInstance模式的Activity按照启动顺序置于前台任务栈。将singleInstance模式的Activity所在的任务栈移至后台。之后启动任何Activity都是前后台任务栈的切换。

重复启动同一个singleInstance模式的Activity时,系统将Activity所在的任务栈切换至前台,而启动其他类型Activity,不需要切换任务栈,添加新实例即可。

操作APP时生命周期调用

点开Activity,按Home键回到主屏:onPause() , onStop()

主屏,再次点击App回到Activity:onRestart() , onStart() , onResume()

在A Activity上打开 B Activity:A onPause() , B onCreate() , B onStart() , B on Resume() , A onStop()

点击Back键:onPause() , onStop() , onDestroy()

Activity异常生命周期

异常生命周期:Activity被系统回收或当前设备的Configuration发生变化(横竖屏),导致Activity被销毁重建

Configuration发生变化导致Activity被杀死并重建

参考别人测试结果

onSave【Restore】InstanceState():系统自动调用,配置发生变化,Activity被异常销毁,用于存储数据(时机在onStop之前)。调用onRestore,把通过onSave保存的Bundle对象作为参数传给onRestore和onCreate。正常销毁,并不会调用这两个方法。

onRestore和onCreate的区别:都可进行数据恢复。但是onRestore一旦被系统回调,其Bundle一定不为空,无需额外的判断。但onCreate会出现为空的情况,当Activity为正常启动时,Bundle就会为空,需要额外判断。

使Activity在系统配置发生变化后不重建:给Activity指定confiGChange属性【orientation, screenSize】。orientation对应api < 13 , screenSize 对应API > 13 。设置之后,横竖屏切换时,不会再重建,取而代之是回调onConfigurationChanged

内存不足导致低优先级的Activity被杀死 内存不足,按照一定优先级杀死目标Activity的进程来回收内存。onSave会被调用用于存储数据,在后续恢复会调用onRestore恢复数据。

总结

到此这篇关于Android Activity生命周期调用的理解的文章就介绍到这了,更多相关Android Activity生命周期内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android Activity生命周期调用的理解

本文链接: https://www.lsjlt.com/news/160987.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android Activity生命周期调用的理解
    目录状态启动模式操作APP时生命周期调用Activity异常生命周期总结状态 活动存放在一个叫返回栈的一个集合,当重新打开一个Activity时,它就会出现在栈顶。当要销毁该活动时...
    99+
    2024-04-02
  • Android开发Activity的生命周期详解
    目录前言典型情况下的生命周期分析前言 Android生命周期分为两部分:  (1)典型情况下的生命周期。(2)异常情况下的生命周期。 典型情况下的生命周期分析 图1 Ac...
    99+
    2024-04-02
  • Android中Activity生命周期调用的示例分析
    这篇文章将为大家详细讲解有关Android中Activity生命周期调用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。状态活动存放在一个叫返回栈的一个集合,当重新打开一个Activity时,它就...
    99+
    2023-06-22
  • Android  Activity生命周期和堆栈管理的详解
    Activity的生命周期Activity是Android中的四大组件之一,也是最基本,最重要的组件,是android系统提供一个可视化的,能与用户交换的组件。 系统提供的组件,不需要用户实例化,用户也不能实例化,是系统进行回调,例如web...
    99+
    2023-05-30
    android activity 生命周期
  • Android项目中如何使用Activity的生命周期
    Android项目中如何使用Activity的生命周期?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Android Activity的生命周期详细介绍生命周期描述的是一个类...
    99+
    2023-05-31
    android activity roi
  • Activity的生命周期有哪些
    这期内容当中小编将会给大家带来有关Activity的生命周期有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android中Activity的生命周期,网上大多数文章基本都是直接贴图、翻译API,比较...
    99+
    2023-05-31
    activity ct
  • Android入门教程之组件Activity的生命周期详解
    目录返回栈Activity 状态1. 运行状态2. 暂停状态3. 停止状态4. 销毁状态Activity 的生存期onCreate()onStart()onResume()onPau...
    99+
    2024-04-02
  • Android Activity的生命周期与启动模式全面解读
    目录Activity概述Activity生命周期生命周期的调用顺序演示Activity的启动模式启动模式的设置standard(默认standard)singleTopsingleT...
    99+
    2024-04-02
  • Android四大组件之Activity深入解读生命周期
    目录一、什么是Activity二、Activity之间的跳转三、Activity 生命周期3.1、Activity生命周期的基本状态3.2、Activity 生命周期的7个方法3.3...
    99+
    2024-04-02
  • Android Activity的生命周期与加载模式是什么
    这篇文章主要介绍了Android Activity的生命周期与加载模式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android Activity的生命周期与加载模式是什么文章都会有...
    99+
    2023-07-05
  • activity生命周期的方法有哪些
    在Android开发中,Activity的生命周期方法有以下几种:1. onCreate(): 在Activity被创建时调用,用于...
    99+
    2023-09-11
    activity
  • Activity跳转时生命周期跟踪的实例
    android应用当中Activity间相互跳转比较常见。本文将通过例子跟踪一下2个Activity间跳转过程中生命周期的变化过程。整个操作过程如下图所示: 打开应用,自动开启First Activity; 按下“Jump Button”按...
    99+
    2023-05-31
    activity 生命周期 ct
  • Android应用的生命周期是什么
    Android应用的生命周期主要包括以下几个状态: 启动状态(Not Running):应用未启动或已被系统杀死。 暂停状态...
    99+
    2024-04-03
    Android
  • Android12四大组件之Activity生命周期变化详解
    目录前言点击返回键Activity不在onDestroy重新onBackPressed时的注意点总结前言 Android12 有很多令人惊喜的变化,比如基于 Material You...
    99+
    2024-04-02
  • JavaSpringBean的生命周期管理详解
    目录Spring Bean的生命周期管理一、Spring Bean的生命周期二、通过@Bean的参数(initMethod ,destroyMethod)指定Bean的初始化和销毁方...
    99+
    2024-04-02
  • Vue生命周期怎么理解
    这篇“Vue生命周期怎么理解”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue生命周期怎么理解”文章吧。1、定义生命周期函...
    99+
    2023-07-06
  • android thread的生命周期是什么
    Android中的线程有以下几个生命周期:1. 新建状态(New):线程对象已经创建,但还没有调用start()方法。2. 就绪状态...
    99+
    2023-10-07
    android
  • 详解uniapp的生命周期
    Uniapp作为一款跨平台应用开发框架,具有丰富的生命周期,以下是Uniapp的生命周期: 1.应用生命周期 应用生命周期是指应用程序从启动到关闭的整个过程,包括应用程序的启动、前后...
    99+
    2023-05-17
    vue uniapp uniapp生命周期
  • React的生命周期详解
    一、React生命周期 React 生命周期分为三种状态 1. 初始化2.更新3.销毁 初始化 1、getDefaultProps() 设置默认的props,也可以用dufault...
    99+
    2024-04-02
  • Android startService的使用与Service生命周期案例详解
    Android中有两种主要方式使用Service,通过调用Context的startService方法或调用Context的bindService方法,本文只探讨纯startServ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作