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
分享到:
相关推荐
Activity 的生命周期。 一、理解Activity Activity是Android程序的4大组件之... 二、理解Activity的生命周期 手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足
在测试中,可以通过`ActivityScenario`或`ActivityTestRule`来启动和控制Activity的生命周期。例如: ```java import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.rule.ActivityTestRule...
如果一个Activity是Paused或者Stopped状态,系统可以将该Activity从内存中删除,Android系统采用两种方式进行删除,要么要求该Activity结束,要么直接终止它的进程。当该Activity再次显示给用户时,它必须重新开始和...
在Android系统中,KeyEvent是处理用户输入硬件按键事件的关键类,它封装了按键按下和释放的动作。本资料主要探讨在Android 9.0 (Pie) 和 Android 10.0 (Q) 操作系统版本中,在framework层添加KeyEvent事件的详细流程...
因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的。 如果Activity是暂停状态,其中所有的Fragment都是暂停状态;如果Activity是stopped状态,这个Activity中所有的...
实现了日夜模式的切换.(不重启 Acitivity ) 解决了因为快速点击 View 导致的多次响应点击事件. 内部实现了 Android 5.0 的CircularReveal效果. 优点: 布局中直接使用 Android 默认的控件就可以.在解析以后会根据...
参考《Java编程思想》 概述 近期接触了路由和模块间通信的内容,发现Java注解非常常用。 避免后面看各源码被其阻塞,大致了解了下,作此文记录之。 注解类型 @Target @Retention @Documented @Inherited ...
am命令启动Acitivity流程图
题目记录关于生命周期详见前面 2.Activity生命周期 1. 学习指导 本讲主要介绍了Android四大组件之首的Activity。 主要知识点: Activity的概念: Activity就是一个有界面的AndroidApp。 Acitivity 的四种状态:
在Android开发中,实现多个Activity之间的滑动切换是一种常见的用户界面交互设计,它可以提供更加流畅且直观的用户体验。本文将详细讲解如何通过点击按钮来实现这种从右侧进入、左侧退出的滑动切换效果。 首先,...
记录归纳了项目里的主要技术点,不同于以往的Activity登录界面,本demo使用了DialogFragment来实现更炫酷好看的效果,并且实现了其与宿主Acitivity的通信,便于完成进一步的网络请求等操作。
7. **Activity 生命周期回调**:新创建的应用程序进程接收到 AMS 发送的信息后,执行 `MainActivity` 的生命周期回调方法,完成启动过程。 #### 三、Activity 组件启动流程图 流程图展示了 Activity 启动的基本...
通过研究这个示例项目,开发者可以学习到如何将手势识别与Activity的生命周期相结合,以及如何通过自定义手势来增强应用的交互性。这是一个很好的实践案例,对于希望提升应用用户体验的开发者来说,值得深入研究和...
实现了日夜模式的切换.(不重启 Acitivity ) 解决了因为快速点击 View 导致的多次响应点击事件. 内部实现了 Android 5.0 的CircularReveal效果. 优点: 布局中直接使用 Android 默认的控件就可以.在解析以后会根据控件...
本次项目主要包含了注册、登录和好友列表三个界面以及之间相互跳转。其中好友列表界面设计的很详细,有好友头像和消息内容,登录界面设计的非常好看。 打开应用,进入登录界面,用户可以点击注册按钮进入注册界面,... ...
通过阅读和分析这些代码,开发者可以学习如何利用Android的辅助功能API来监控和显示当前的Activity和Fragment信息,这不仅对调试有帮助,也有助于理解Android系统的运行机制。对于想要提升Android开发技能或优化调试...
Android 横竖屏切换 Android 横竖屏切换是 Android 开发中的一种常见需求,通过利用 Android 系统每次屏幕切换会重启 Activity 的特性,在 OnCreat 处自动加载不同显示状态下的 layout。下面将详细介绍 Android ...
#对Acitivity的测试 对于Activity,我们大致有两种测试需求: 1、在Activity正常启动后,查看界面布局是否正确,包括View的点击事件等是否正确。 2、需要在Activity启动前完成各种数据的部署,然后查看Activity的...
andriod activity入门级介绍资料,对其生命周期介绍的很好