首页 > 其他分享 >Android中Activity生命周期详解

Android中Activity生命周期详解

时间:2024-07-21 14:00:42浏览次数:12  
标签:调用 Activity 详解 前台 activity Android onSaveInstanceState 交互

目录

Activity是四大组件之一,也是接触的最多的,一般来说Activity经常是与用户交互的界面。

一 典型情况

先看下google官网,其实已经很清楚了
在这里插入图片描述
再来个总结

  • onCreate,正在被创建,一次,可以做初始化工作,比如setContentView来加载界面资源
  • onStart 正在启动,可见了但是没在前台没获得焦点,无法与用户交互
  • onResume 到前台获得焦点,可以与用户交互
  • onPause 正在停止,可以做一些轻量级的操作不影响下一个Activity的onResume方法
  • onStop 即将停止,Activity不可见
  • onDestory 摧毁,可以做一些资源回收和释放的操作
  • onRestart 正在重新启动。由stop触发。

最后,前六个都是比较好理解的,就是最后一个onRestart,我以前不太理解。这次看了下官方描述
在这里插入图片描述
调用时机在stop方法的后面,并且当activity重新显示的时候调用,之后调用start和resume。

二 异常情况

2.1 系统配置改变

比如横竖屏切换下,如果不做特殊处理,activity会销毁到重新创建。系统会调用onRestoreInstanceState 来保存当前activity的状态,是onSaveInstanceState 里面的bundle对象,如果onSaveInstanceState不为空,就可以在onCreate里面进行一个重建。
另外,保存view和恢复view本质也是委托思想,当activity被意外终止,activity调用onSaveInstanceState来保存数据,会委托window,window再委托他上面的顶层容器,比如DecorView,顶层容器再来通知他的所有子元素来进行一个保存。

2.2 系统资源不足kill掉低优先级activity

优先级:前台activity > 可见但不处于前台 > 后台

若想横竖屏切换的时候不重新启动,可以对configChanges属性进行配置

标签:调用,Activity,详解,前台,activity,Android,onSaveInstanceState,交互
From: https://blog.csdn.net/qq_45077023/article/details/140425138

相关文章

  • Android中Retrofit的学习和使用记录
    目录一概述二优点三代码3.1Api3.2RetrofitManager3.3DataRepository3.4在ViewModel中请求3.4最后在ui里面调用一概述是Android一个restful风格的网络请求框架,本质上还是OkHttp进行请求,Retrofit负责对接口的封装。Retrofit接口层封装请求参数、Header、U......
  • IO多路复用-select的使用详解【C语言】
    1.多进程/线程并发和IO多路复用的对比IO多路转接也称为IO多路复用,它是一种网络通信的手段(机制),通过这种方式可以同时监测多个文件描述符并且这个过程是阻塞的,一旦检测到有文件描述符就绪(可以读数据或者可以写数据)程序的阻塞就会被解除,之后就可以基于这些(一个或多个)就绪的文件......
  • Android Studio项目中的重复类、动态版本控制及其他优化方法
    本文介绍在Android开发过程中,我们常常会遇到一些棘手的问题,如重复类冲突、动态版本控制及依赖打包等。本文将介绍如何解决这些问题,并提供一些有用的优化方法。1.解决重复类冲突问题在引入多个JAR包或AAR包时,可能会遇到类重复的问题,导致编译失败。这里提供了两种解决方......
  • 从输入URL到页面展示到底发生了什么?--02 握手的故事:三次握手详解
    在这个数字化时代,网络通讯就像人类之间的交流,需要一种方式来确保彼此能够顺利对话。在计算机网络中,TCP三次握手就是这样一种确保双方通信顺畅的机制。今天,我们将通过一个生动有趣的故事来讲解这个重要的过程。引子:约会前的准备想象一下,你要和朋友约个饭,但由于时间久了彼此不太确......
  • SQLite数据库在Android中的使用
    目录一,SQLite简介二,SQLIte在Android中的使用1,打开或者创建数据库2,创建表3,插入数据4,删除数据5,修改数据 6,查询数据三,SQLiteOpenHelper类四,SQLite中事务的处理一,SQLite简介        SQLite是一个无服务器的,零配置的,事务性的SQL数据库引擎。无服务器,意味着使......
  • Pandas入门,作业详解
    #课程作业2补充——个人笔记#直播链接:第二课堂作业讲解_哔哩哔哩_bilibili配合上个笔记:课程作业2——Pandas入门基本操作-CSDN博客作业用到的数据:链接:https://pan.quark.cn/s/4f673346914c提取码:gix8一.准备工作打开jupyterNoteBook参照Python入门(含python基础语法+......
  • 猫头虎 Python知识点分享:pandas--read_csv()用法详解
    ......
  • Android10.0 锁屏分析-KeyguardPatternView图案锁分析
    首先一起看看下面这张图:通过前面锁屏加载流程可以知道在KeyguardSecurityContainer中使用getSecurityView()根据不同的securityModeinflate出来,并添加到界面上的。我们知道,Pattern锁所使用的layout是R.layout.keyguard_pattern_view;<com.android.keyguard.KeyguardPat......
  • IDEA的APIPost接口测试插件详解
    APIPOST官方网址一、安装APIPost插件打开IntelliJIDEA:启动您的IntelliJIDEA开发环境。导航到插件设置:在Windows或Linux上,点击File>Settings。在macOS上,点击IntelliJIDEA>Preferences。搜索并安装APIPost插件:在设置窗口中,选择Plugins。点击Marketplace标签......
  • 如何在Android Java中访问android/data/文件夹(应用程序包)?
    **我的应用程序的包名称是com.gorlopsen。该应用程序必须上传了没有它就无法工作的文件。文件下载到存档中并解压到android/data/com.gorlopsen文件夹中。但是,在解压阶段,出现下载错误,导致应用程序无法使用。在网上找到了有关访问所有文件的信息,但并不适合我。是否可以请求......