activity生命周期(这篇足够了)

activity生命周期(这篇足够了)activity 生命周期 这篇足够了 摘要做安卓开发已经 4 年多了 所接触的知识点也比较零散 在这里记录一下 android 方面的知识点 方便自己以后复习 有什么不足的 以及错误的欢迎拍砖 activityacti 从开始到结束的四个状态 activity 的生命周期 activity 的进程优先级 activity 的四个状态关于 activity 的

activity生命周期(这篇足够了)

摘要

做安卓开发已经4年多了,所接触的知识点也比较零散,在这里记录一下android方面的知识点,方便自己以后复习,有什么不足的,以及错误的欢迎拍砖。

activity

  • activity从开始到结束的四个状态。
  • activity的生命周期。
  • activity的进程优先级。

activity的四个状态

  1. running->当前显示在屏幕的activity(位于任务栈的顶部),用户可见状态。
  2. poused->依旧在用户可见状态,但是界面焦点已经失去,此Activity无法与用户进行交互。
  3. stopped->用户看不到当前界面,也无法与用户进行交互 完全被覆盖.
  4. killed->当前界面被销毁,等待这系统被回收

关于activity四个状态所在的生命周期:

4个的状态

当前称为活动状态(Running),此activity所处于任务栈的top中,可以与用户进行交互。

Running ——>Paused 所执行Activity生命周期中的onPause()

当前称为暂停状态(Paused),该Activity已失去了焦点但仍然是可见的状态(包括部分可见)。

Paused ——>Running所执行的生命周期为:OnResume()

当前重新回到活动状态(Running),此情况用户操作home键,然后重新回到当前activity界面发生。

Paused ——>Stoped所执行的生命周期为:onStop()

该Activity被另一个Activity完全覆盖的状态,该Activity变得不可见,所以系统经常会由于内存不足而将该Activity强行结束。

Stoped——>killed所执行的生命周期为:onDestroy()

该Activity被系统销毁。当一个Activity处于暂停状态或停止状态时就随处可能进入死亡状态,因为系统可能因内存不足而强行结束该Activity。

注:还有一种情况由于系统内存不足可能在Paused状态中直接被系统杀死达到killed状态。

activity的生命周期

oncreate()->onstart()->onResume()->onRestart()->onPouse()->onStop()->onDestory()

4个的状态

上面图概括了android生命周期的各个环节,描述了activity从生成到销毁的过程。

注: 当AActivity切换BActivity的所执行的方法:

当AActivity切换BActivity(此activity是以dialog形式存在的)所执行的方法:

Activity中onSaveInstanceState()和onRestoreInstanceState()

onSaveInstanceState(Bundle outState):



onRestoreInstanceState(Bundle outState):

activity的进程优先级。

前台进程>可见进程>service进程>后台进程>空进程

前台进程:
 1.当前进程activity正在与用户进行交互。 2.当前进程service正在与activity进行交互或者当前service调用了startForground()属于前台进程或者当前service正在执行生命周期(onCreate(),onStart(),onDestory()) 3.进程持有一个BroadcostReceiver,这个BroadcostReceiver正在执行onReceive()方法 
可见进程:
 1. 进程持有一个activity,这个activity不再前台,处于onPouse()状态下,当前覆盖的activity是以dialog形式存在的。 2. 进程有一个service,这个service和一个可见的Activity进行绑定。 
service进程:
 1.当前开启startSerice()启动一个service服务就可以认为进程是一个服务进程。 
后台进程:
 activity的onStop()被调用,但是onDestroy()没有调用的状态。该进程属于后台进程。 
空进程:
 改进程没有任何运行的数据了,且保留在内存空间,并没有被系统killed,属于空进程。该进程很容易被杀死。 

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200950.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午10:15
下一篇 2026年3月20日 上午10:16


相关推荐

  • 网页设计(新手入门)[通俗易懂]

    网页设计(新手入门)[通俗易懂]1.HTML的基本结构<!DOCTYPEHTML><html><head><title>百度一下,你就知道</title></head><body>……</body></html>HTML:是用于制作网页的超文本标记语…

    2022年4月19日
    45
  • 用shapely判断两个图形的包含相交关系

    用shapely判断两个图形的包含相交关系shapelyshape 介绍 shapely 安装 shapely 的导入 Point LineString Polygon 的通用属性 Point 对象 LineString 对象 Polygon 对象 box 对象一元判定二元判定 shapely 介绍 shapely 是专门做图形计算的包 基本上图形线段 点的判断包里都有 shapely 里主要由 Point LineString Polygon 这三类组成 在 shapely 里点 线 面之间都是可以做判断的 比如说计算点到线段的距离 点到面之间的距离 点与点之间的距离 点是否在一个图形

    2026年3月19日
    2
  • 火狐破解收费hackbar「建议收藏」

    火狐破解收费hackbar「建议收藏」https://blog.csdn.net/qq_38963246/article/details/95489242

    2022年6月10日
    45
  • SSDP 协议_Smb协议

    SSDP 协议_Smb协议1.组播地址2.SSDP,简单服务发现技术组播地址为了让组播源和组播组成员进行通信,需要提供网络层组播地址,即IP组播地址。同时必须存在一种技术将IP组播地址映射为链路层的组播MAC地址。1.IP组播地址(1)       IPv4组播地址IANA(InternetAssignedNumbersAuthority,互联网编号分配委员会)将D类地址空间分配给IP

    2022年10月11日
    4
  • 软件测试基础理论(总结)[通俗易懂]

    软件测试基础理论(总结)[通俗易懂]1. 软件的三个要素:程序(实行特定功能的代码) 文档(支持代码运行)数据(支持程序运行一切有关)2. 软件的产品质量指的是?1)质量是指实体特性的综合,表示实体满足明确的或隐含要求的能力。3. 软件测试的目的:1)验证软件是否满足软件开发合同或者项目开发计划,系统/子系统设计文档,软件需求规格说明,软件产品说明等规定的软件质量要求2)通过测试,发现软件缺陷 3

    2022年6月18日
    28
  • 面向 Linux 使用者的 AI 基礎 – 第三部分

    面向 Linux 使用者的 AI 基礎 – 第三部分

    2026年3月14日
    1

发表回复

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

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