android activity生命周期

【Android】Activity生命周期 关于安卓activity生命周期的一些理解,结合demo分析,在多个activity之间,跳转到窗口化activity的activity状态变化过程 阅读详情

Android activity的生命周期

activity类处于android.app包中,继承体系如下:

1.java.lang.Object

2.android.content.Context

3.android.app.ApplicationContext

4.android.app.Activity

activity是单独的,用于处理用户操作。几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,开发人员可以通过setContentView(View)接口把UI放到activity创建的窗口上,当 activity指向全屏窗口时,也可以用其他方式实现:作为漂浮窗口(通过windowIsFloating的主题集合),或者嵌入到其他的 activity(使用ActivityGroup)。大部分的Activity子类都需要实现以下两个接口:

  • onCreate(Bundle)接口是初始化activity的地方. 在这儿通常可以调用setContentView(int)设置在资源文件中定义的UI, 使用findViewById(int) 可以获得UI中定义的窗口.
  • onPause()接口是使用者准备离开activity的地方,在这儿,任何的修改都应该被提交(通常用于ContentProvider保存数据).

 

为了能够使用Context.startActivity(),所有的activity类都必须在AndroidManifest.xml文件中定义有相关的“activity”项。

activity类是Android 应用生命周期的重要部分。

Activity生命周期

在系统中的Activity被一个Activity栈所管理。当一个新的Activity启动时,将被放置到栈顶,成为运行中的Activity,前一个Activity保留在栈中,不再放到前台,直到新的Activity退出为止。

Activity有四种本质区别的状态:

  1. 在屏幕的前台(Activity栈顶),叫做活动状态或者运行状态(active or running)
  2. 如果一个Activity失去焦点,但是依然可见(一个新的非全屏的Activity 或者一个透明的Activity 被放置在栈顶),叫做暂停状态(Paused)。一个暂停状态的Activity依然保持活力(保持所有的状态,成员信息,和窗口管理器保持连接),但是在系统内存极端低下的时候将被杀掉。
  3. 如果一个Activity被另外的Activity完全覆盖掉,叫做停止状态(Stopped)。它依然保持所有状态和成员信息,但是它不再可见,所以它的窗口被隐藏,当系统内存需要被用在其他地方的时候,Stopped的Activity将被杀掉。
  4. 如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接杀掉它的进程。当该Activity再次显示给用户时,它必须重新开始和重置前面的状态。

 

下面的图显示了Activity的重要状态转换,矩形框表明Activity在状态转换之间的回调接口,开发人员可以重载实现以便执行相关代码,带有颜色的椭圆形表明Activity所处的状态。

在上图中,Activity有三个关键的循环: 

  1. 整个的生命周期,从onCreate(Bundle)开始到onDestroy()结束。Activity在onCreate()设置所有的“全局”状态,在onDestory()释放所有的资源。例如:某个Activity有一个在后台运行的线程,用于从网络下载数据,则该Activity可以在onCreate()中创建线程,在onDestory()中停止线程。
  2. 可见的生命周期,从onStart()开始到onStop()结束。在这段时间,可以看到Activity在屏幕上,尽管有可能不在前台,不能和用户交互。在这两个接口之间,需要保持显示给用户的UI数据和资源等,例如:可以在onStart中注册一个IntentReceiver来监听数据变化导致UI的变动,当不再需要显示时候,可以在onStop()中注销它。onStart(),onStop()都可以被多次调用,因为Activity随时可以在可见和隐藏之间转换。
  3. 前台的生命周期,从onResume()开始到onPause()结束。在这段时间里,该Activity处于所有 Activity的最前面,和用户进行交互。Activity可以经常性地在resumed和paused状态之间切换,例如:当设备准备休眠时,当一个 Activity处理结果被分发时,当一个新的Intent被分发时。所以在这些接口方法中的代码应该属于非常轻量级的。
  4. Activity的整个生命周期都定义在下面的接口方法中,所有方法都可以被重载。所有的Activity都需要实现 onCreate(Bundle)去初始化设置,大部分Activity需要实现onPause()去提交更改过的数据,当前大部分的Activity也需要实现onFreeze()接口,以便恢复在onCreate(Bundle)里面设置的状态。

    public class Activity extends ApplicationContext {

    protected void onCreate(Bundle icicle);

    protected void onStart();

    protected void onRestart();

    protected void onResume();

    protected void onFreeze(Bundle outIcicle);

    protected void onPause();

    protected void onStop();

    protected void onDestroy();

    }


安卓app实现全局监听activity的生命周期 1.在自定义MyApplication 中注册生命周期的方法registerActivityLifecycleCallbacks(new ActivityLifecycleListener(this)) public class MyApplication extends Application { private static UserSPUtil sharedPref 阅读详情

相关推荐

海康威视GigE工业相机的python调用demo

默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。

xulibo5828的博客 2109

Android 之 Activity 详解

最近在学习Android开发方面的知识,整理了一下关于Android中Activity方面的知识,也算是对自己学的知识进行了总结。Activity 在 Android开发中有着极其重要的位置,Activity是Android中四大组件之一,而我们的Android应用是由一个或多个Activity组成的。本篇文章将从以下几个方面给大家分享Activity的知识: 文章目录1. Activity 的概念1.1 Activity 的概念1.2 创建 Activity2. Activity 的启动方法2.1 显示启

小曾同学的博客 18万+

python数据分析与可视化

Python数据分析主要包括数据清洗、数据探索和数据可视化三个部分。数据清洗是数据分析的重要环节,主要是对数据进行预处理,包括缺失值处理、异常值处理、数据类型转换等。数据探索则是通过对数据进行初步分析,了解数据的分布和特征,为后续的数据分析提供基础。数据可视化则是将数据以图形化的方式呈现,帮助人们更好地理解和分析数据。

2301_82032652的博客 7715

Android Activity类详解

activity类处于android.app包中,继承体系如下:1.java.lang.Object2.android.content.Context3.android.app.ApplicationContext4.android.app.Activityactivity是单独的,用于处理用户操作。几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,开发人员可以

乐吾天 812

RK3568—基于GM8775C的MIPI转双通道LVDS屏幕调试

Rockchip RK3568 原生显示接口不支持双通道LVDS屏幕的数据输出,因此需要借助显示转换芯片才能实现双通道LVDS屏幕的驱动。本文介绍使用GM8775C芯片方案,在 RK3568 平台实现单路 MIPI DSI 信号输出来驱动双通道LVDS显示屏。 关于GM8775C GM8775C 型 DSI 转双通道 LVDS 发送器产品主要实现将 MIPI DSI 转单/双通道 LVDS功能,MIPI 支持 1/2/3/4 通道可选,每通道最高支持 1Gbps 速率,最大支持 4Gbps 速率。LV.

Industio_优快云的博客 1万+

生产环境下oracle19c rac恢复节点2

现状:目前节点1数据库集群服务处于正常,节点2服务器由于系统故障无法恢复,确认系统重装。目标:不影响业务的情况下,重新把节点2添加回集群中。

sqlora的专栏 867

Android基础——Activity

Android基础一级目录二级目录三级目录 一级目录 二级目录 三级目录

松仔Log的博客 3万+

【实战分享】构建企业级RAG(Retrieval-Augmented Generation)知识库的全面实践

大模型指的是训练参数量极其庞大的深度学习模型,如GPT-3、GPT-4等。这些模型能够通过海量的数据学习,具备强大的语言理解和生成能力。在问答系统中,大模型能够理解用户提出的问题,并生成相关的回答。"""添加文档向量"""pass"""相似度检索"""pass"""获取页面分段"""passMilvus是一个开源的向量数据库,专为高效的向量存储和检索设计。Milvus支持多种索引方式(如IVF、HNSW等),并提供高效的查询和检索功能。索引构建:Milvus通过创建索引加速查询速度。

后端研发工程师Marion的博客 5929

Android开发之Activity的生命周期详解

Android生命周期分为两部分:(1)典型情况下的生命周期。(2)异常情况下的生命周期。典型情况下的生命周期分析:典型情况下的生命周期指在有用户参与的情况下,Activity所经过的生命周期的改变,正常情况下,Activity的常用生命周期有以下几种情况: onCreate():Activity启动后第一个被调用的函数,常用来进行Activity的初始化,如创建View,绑定数据和恢复数据。 onStart():当Activity显示在屏幕上时,函数被调用。 onRestart():Activity

程序星空实验室 1万+

美特CRM mcc_login.jsp存在SQL注入漏洞

MetaCRM 是一种现代化的客户关系管理(CRM)平台,旨在通过集成和自动化的方式帮助企业管理与客户的关系,提高销售和服务效率。MetaCRM 的功能和特性通常涵盖了多个领域,包括销售、营销、客户服务、数据分析和自动化工具。

缘梦未来的博客 808

PCL 循环体素滤波

本文提出了一种自动循环体素滤波算法,用于解决点云配准中分辨率差异大、参数设置复杂的问题。算法通过计算点云分辨率(公式1),采用迭代方式调整体素尺寸(公式2),逐步逼近目标分辨率。该方法在保留几何特征的同时有效精简数据量,实现了均匀分辨率的自动调整。实验通过PCL库实现,展示了原始点云与滤波结果的对比效果,验证了算法在减少数据规模方面的有效性。该方法为点云配准提供了预处理解决方案,相关成果已发表于SCI期刊。

点云侠的博客 282

关于Activity这一篇就够了

展望未来,随着Android系统的不断发展和用户需求的不断变化,我们期待Android系统在Activity方面提供更多的新特性和优化措施,为开发者创造更加便捷、高效和安全的开发环境。总之,Activity是Android应用开发中不可或缺的一部分,它提供了丰富的功能和灵活的机制,用于创建和管理用户界面,处理用户的交互操作,以及与其他组件进行通信。同时,随着Android系统的不断发展和用户需求的不断提高,开发者还需要不断学习和探索新的技术和方法,以提高应用的性能和质量。

VitorLiu的博客 2354

导航系统 | 全球四大卫星导航系统(2025)核心能力对比分析

北斗系统通过GEO卫星(80°E、110.5°E、140°E)实现区域增强,其IGSO卫星在亚太地区形成"8"字形轨迹,使该区域可见卫星数量比GPS多4-6颗,显著提升复杂环境下的定位可用性[13]。北斗短报文功能在2025年云南地震救援中发挥关键作用,被困人员通过北斗终端发送120字求救信息,实现"位置+状态"一体化上报,救援响应时间缩短40%[15]。北斗通过三频信号(B1C/B2a/B3)消除电离层延迟误差,在城市峡谷环境下定位连续性达99.98%,优于GPS的99.95%[5]。

尘世冰封的专栏 2614

Android安卓中Activity活动生命周期

文章目录前言活动的状态常规情况下的生命周期典型情况下的生命周期一些例外情况的生命周期异常情况下的生命周期总结 前言 Activity作为安卓四大组件之一,平常我们接触得最多得也是activity,所以很有必要详细了解一下他的详细生命周期。这篇文章定位是有一点安卓基础的,所以还完全不了解的可以先去学习一下activity。这篇文章主要是讲活动的生命周期。 活动的生命周期,人有胎儿期,青春期,老年期一...

一只修仙的猿 668

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【小王的安卓之路】Android安卓入门之Activity(活动)及其生命周期

- 1.Activity是什么? - 2.Activity的七大生命周期 - 3.Activity的生老病死 - 4.多个Activity交互时生命周期的变化 - 5.Activity的主要作用

小王的学习blog 4万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

android 获取活动activity,安卓活动activity的生命周期

生命周期示意图1.当第一次调用一个Activity就会执行onCreate方法2.当Activity处于可见状态的时候就会调用onStart方法3.当Activity可以得到用户焦点的时候就会调用onResume方法4.当Activity没有被销毁的时候重新调用这个Activity就会调用onRestart方法5.当Activity被遮挡住的时候就会调用onPause方法6.当Activity处于...

weixin_39889597的博客 475

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android Activity生命周期详解

Activity作为Android的四大组件之一,非常的重要,也是最常用的四大组件,使用Activity必须要在AndroidManifest中进行注册,那么作为Android的基础,Activity的生命周期你是否完全掌握了呢?下面就让我们来一起回顾一下Activity的生命周期吧! 首先,你需要知道 Activity的生命周期分为两种。   典型情况下的生命周期(就是我们开发中经常用到的...

李家大大大公子 2万+

安卓 Android Activity 生命周期

本文提供一个测试类通过打印的方式展示在多个Activity之间互相跳转的时候,各个Activity的。下图出自 郭霖 《第一行代码(第二版)》上面的图,其实不太好记。

wuyujin1997的博客 1000

Android activity的生命周期

 Android activity的生命周期activity类处于android.app包中,继承体系如下: 1.java.lang.Object 2.android.content.Context 3.android.app.ApplicationContext 4.android.app.Activityactivity是单独的,用于处理用户操作。几乎所有的

hpoi的专栏 18万+

Android开发Activity生命周期详解

本文详解Android开发Activity生命周期。

qq_30725967的博客 2205

Android的Activity之生命周期

Activity是一个应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。 每个 Activity 都会获得一个用于绘制其用户界面的窗口。窗口通常会充满屏幕,但也可小于屏幕并浮动在其他窗口之上。 一个应用通常由多个彼此松散联系的 Activity 组成。 一般会指定应用中的某个 Activity 为“主”Activity,即首次启动应用时呈...

yu314092706的专栏 8668

【Android】Activity的生命周期

Activity的生命周期 1.返回栈 其实Android是使用任务(task)来管理Activity的,一个任务就是一组存放在栈里的Activity的集合,这个栈也被称作返回栈(back stack)。栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的Activity,它就会在返回栈中入栈,并处于栈顶的位置。而每当我们按下Back键或调用finish()方法去销毁一个Activity时,处于栈顶的Activity就会出栈,前一个入栈的Activity就会重新处于栈顶的位置。系统总是会显示处于

2303_79296612的博客 2795

Android—— Activity生命周期,高级安卓面试题

学习。

m0_61549674的博客 993

Android安卓——Activity组件代码测试生命周期(续)

经过之前对安卓中Activity组件的学习,可以在理论上明白Activity的作用和用法。 本次的学习主要是Activity的生命周期运行情况的实践。通过实际的系统调用情况来确定生命周期的流程。 Activity组件(1) Activity组件(2) 建立一个类实现所有的生命周期的方法package edu.hrbeu.ActivityLifeCycle;import androi

Deniece_X的博客 561

Android Activity生命周期

1.activity Activity是由Activity栈管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Activity位于此Activity底部。Acitivity一般意义上有四种状态: ①当Activity位于栈顶时,此时正好处于屏幕最前方,此时处于运行状态; ②当Activity失去了焦点,但仍然对用户可见(如栈顶的Activity是透明的或者栈顶Activity并不是铺满整个手机屏幕),此时处于暂停状态; ③当Activity被其他Activity

zenmela2011的专栏 7089

Android——Activity的生命周期

一、正常情况下一个Activity会经历以下7个生命周期 1:onCreate:当Activity第一次被运行时调用此方法,可用于加载布局视图,获取控件命名空间等一些初始化工作。 2: onRestart:当Activity被重新启动的时候,调用此方法 3: onStart :表示Activity正在被启动,已经从不可见到可见状态(不是指用户可见,指Activity在后台运行,没有出现在前台),但还是无法与用户进行交互。 4: onResume :表Activity已经变为可见状态了,并且出现在前台工作了,

FranzLiszt的博客 1万+
上一篇: java线程题目
下一篇: 读取文件排序后写入文件
yps_leaf
博客等级 码龄14年 3粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值