`

(android学习笔记二)Acitivity的生命周期

阅读更多

Activity的生命周期

 

(一)activity 主要有三个状态:

 

       1、你完全看见它(即当前屏幕) 。 当在屏幕前台时(位于当前任务堆栈的顶部),它是活跃或运行的状态。它就是相应用户操作的activity 。 

     2、它站在第二排,你只能看到它的一部分 。当它失去焦点但仍然对用户可见时,它处于暂停状态。即是:在它之上有另外一个activity 。这个 activity 也许是透明的,或者未能完全遮蔽全屏,所以被暂停的 activity 仍对用户可见。 暂停的activity 仍然是存活状态 (它保留着所有的状态和成员信息并连接至窗口管理器),但当系统处于极低内存的情况下,仍然可以杀死这 个activity

     3、你完全看不见它 。 如果它完全被另一个activity 覆盖是,它处于 停止状态。它仍然保留所有的状态和成员信息。然而它不在为用户可见,所以它的窗口将被隐藏,如果其它地方需要内存,则系统经常会杀死这个activity


       总之 :如果一个activity 处于暂停或停止状态,系统可以通过要求它结束(调用它的  finish() 方法)或直接杀死它的进程来将它驱出内存。当它再次为用户可见的时候,它只能完全重新启动并恢复至以前的状态。

 

(二)activity的7个生命周期方法

 

           1、onCreate

         2、onStart

         3、onResume

         4、onPause

         5、onStop

         6、onRestart

         7、onDestroy

 

(三)生命周期阶段

 

1、 开始 Activity ——进入第一个状态

    这个阶段依次执行了3个生命周期方法——onCreate、onStart和onResume。


2、Activity失去焦点——处于第一个状态,进入第二、三个状态

    这个阶段依次执行了2个生命周期方法——onPause、(onPause之后,系统会问:Activity仍然还没有获取焦点么?回答:是)onStop。(回答:否,查看下面内容)


3、关闭Activity——处于第一个状态,被关闭。处于第二、三状态被关闭

    处于第一个状态、被关闭:这个阶段依次执行了三个生命周期方法——onPause、onStop、onDestory。

    处于第二、三状态被关闭:这个阶段直接执行onDestory


4、重新获取焦点——处于第二、三状态,进入第一状态

    这个阶段依次执行了三个生命周期方法——onRestart、onStart和onResume。


———————————————上面是基本4个阶段————————————

——————————————下面是一个变态复杂阶段———————————

1、在上述第2条中(回答:否)

     onPause之后运行:onResume方法,进入第一个状态


总结:

1、整体生命周期:onCreate、onStart、onResume、(Activity失去焦点)onPause、(Activity仍然没有获取焦点)onStop、(Acivity没有重新获取焦点)onDestory(或者,其他应用程序占用内容,直接finish掉)

2、焦点生命周期:

     onPause之后,Activity重新获取焦点,则进入onResume方法。

     onStop之后,Activity重新获取焦点,则onRestart、再onStart。

3、生命周期有两层循环:从onPause回到onResume,从onStop回到onStart

 

参考资料:

 1、Android/OPhone开发完全讲义

 2、Android---Activity生命周期状态

         http://www.cnblogs.com/sardine/archive/2010/09/26/1835290.html

 

 

 

 

 

分享到:
评论

相关推荐

    Android Activity生命周期详解

    Activity 的生命周期。 一、理解Activity Activity是Android程序的4大组件之... 二、理解Activity的生命周期 手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足

    Android Acitivity的测试代码

    在测试中,可以通过`ActivityScenario`或`ActivityTestRule`来启动和控制Activity的生命周期。例如: ```java import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.rule.ActivityTestRule...

    Android acitivity &Intent;

    如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接终止它的进程。当该Activity再次显示给用户时,它必须重新开始和...

    Android 9.0 10.0 framework添加KeyEvent按键事件流程.rar

    在Android系统中,KeyEvent是处理用户输入硬件按键事件的关键类,它封装了按键按下和释放的动作。本资料主要探讨在Android 9.0 (Pie) 和 Android 10.0 (Q) 操作系统版本中,在framework层添加KeyEvent事件的详细流程...

    实例讲解Android应用开发中Fragment生命周期的控制

    因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。 如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的...

    Android代码-不重启实现日夜间模式切换

    实现了日夜模式的切换.(不重启 Acitivity ) 解决了因为快速点击 View 导致的多次响应点击事件. 内部实现了 Android 5.0 的CircularReveal效果. 优点: 布局中直接使用 Android 默认的控件就可以.在解析以后会根据...

    android 注解入门(Acitivity路由demo)

    参考《Java编程思想》 概述 近期接触了路由和模块间通信的内容,发现Java注解非常常用。 避免后面看各源码被其阻塞,大致了解了下,作此文记录之。 注解类型 @Target @Retention @Documented @Inherited ...

    am命令启动Acitivity流程图图片

    am命令启动Acitivity流程图

    【android编程】第七讲-android Activity

    题目记录关于生命周期详见前面 2.Activity生命周期 1. 学习指导 本讲主要介绍了Android四大组件之首的Activity。 主要知识点: Activity的概念: Activity就是一个有界面的AndroidApp。 Acitivity 的四种状态:

    android点击按钮实现多个Activity滑动切换

    在Android开发中,实现多个Activity之间的滑动切换是一种常见的用户界面交互设计,它可以提供更加流畅且直观的用户体验。本文将详细讲解如何通过点击按钮来实现这种从右侧进入、左侧退出的滑动切换效果。 首先,...

    Android开发丶使用DialogFragment实现炫酷的登录界面并完成DialogFragment与宿主Acitivity的通信

    记录归纳了项目里的主要技术点,不同于以往的Activity登录界面,本demo使用了DialogFragment来实现更炫酷好看的效果,并且实现了其与宿主Acitivity的通信,便于完成进一步的网络请求等操作。

    acitivity组件启动过程分析

    7. **Activity 生命周期回调**:新创建的应用程序进程接收到 AMS 发送的信息后,执行 `MainActivity` 的生命周期回调方法,完成启动过程。 #### 三、Activity 组件启动流程图 流程图展示了 Activity 启动的基本...

    Activity手势滑动关闭的效果

    通过研究这个示例项目,开发者可以学习到如何将手势识别与Activity的生命周期相结合,以及如何通过自定义手势来增强应用的交互性。这是一个很好的实践案例,对于希望提升应用用户体验的开发者来说,值得深入研究和...

    Android 日间/夜间模式 主题切换

    实现了日夜模式的切换.(不重启 Acitivity ) 解决了因为快速点击 View 导致的多次响应点击事件. 内部实现了 Android 5.0 的CircularReveal效果. 优点: 布局中直接使用 Android 默认的控件就可以.在解析以后会根据控件...

    Android Studio实现QQ的注册、登录和好友列表页面的跳转,基础入门项目

    本次项目主要包含了注册、登录和好友列表三个界面以及之间相互跳转。其中好友列表界面设计的很详细,有好友头像和消息内容,登录界面设计的非常好看。 打开应用,进入登录界面,用户可以点击注册按钮进入注册界面,... ...

    可以告诉你当前处在哪个acitivity或者fragment中(后台服务运行,可以帮助你调试一个陌生的应用)。

    通过阅读和分析这些代码,开发者可以学习如何利用Android的辅助功能API来监控和显示当前的Activity和Fragment信息,这不仅对调试有帮助,也有助于理解Android系统的运行机制。对于想要提升Android开发技能或优化调试...

    Android 横竖屏切换

    Android 横竖屏切换 Android 横竖屏切换是 Android 开发中的一种常见需求,通过利用 Android 系统每次屏幕切换会重启 Activity 的特性,在 OnCreat 处自动加载不同显示状态下的 layout。下面将详细介绍 Android ...

    Android单元测试-对Activity的测试

    #对Acitivity的测试 对于Activity,我们大致有两种测试需求: 1、在Activity正常启动后,查看界面布局是否正确,包括View的点击事件等是否正确。 2、需要在Activity启动前完成各种数据的部署,然后查看Activity的...

    andriod activity说明

    andriod activity入门级介绍资料,对其生命周期介绍的很好

Global site tag (gtag.js) - Google Analytics