`

Android开发——Android生命周期

 
阅读更多

 

Activity的三种状态:

a)运行状态

b)暂停状态

c)停止状态

运行状态:

当Activity在屏幕的最前端,也就是当前显示页面时候,它是可见的并且有焦点,可以处理用户的操作:比如点击、双击、长按等,也就是激活运行状态,处理各个监听器的功能。

当内存不足的时候,Android会先封杀堆栈底层的Activity,也就是最先打开的Activity,类似于数组的堆栈压栈操作。

暂停状态:

在Activity可见但没有焦点,并且用户对Activity的操作没有响应,这样的状态是暂停状态。我在使用手机的时候,比如我打开了一个Activity,但在我退出的时候会弹出一个提示是否退出的对话框,这时候,我们之前打开的应用就变成了半透明效果并且处于暂停状态也没有焦点,我们做任何操作都无效;当前的焦点在提示退出的对话框上,所以这个对话框就处于运行状态,也就是激活状态中,我们可以做任何操作。

停止状态:

当Activity完全不可见的时候就处于停止状态。比如手机多任务状态运行的时候,很多程序都不在屏幕上显示,我们在不同的程序中切换不同的Activity,很多程序就在不停地做运行状态—>暂停状态—>停止状态的切换。这个过程就是Android程序的生命周期中要做的事情。

生命周期事件:

Activity状态的变化是随着我们的操作进入的,状态的改变会触发一些事件,也就是生命周期事件。一共有七个生命周期事件:

Void onCreate(Bundle savedInstanceState)

protected void onCreate(Bundle savedInstanceState)一个 Activity 的实例被启动时调用的第一个方法。一般情况下,我们都覆盖该方法作为应用程序的一个入口点,在这里做一些初始化数据、设置用户界面等工作。大多数情况下,我们都要在这里从 xml 中加载设计好的用户界面。

Void onStart()

该方法在 onCreate() 方法之后被调用,或者在 Activity 从 Stop 状态转换为 Active 状态时被调用。

Void onRestart()

Void onResume()

在 Activity 从 Pause 状态转换到 Active 状态时被调用。

Void onPause()

Void onStop()

在 Activity 从 Active 状态转换到 Stop 状态时被调用。一般我们在这里保存 Activity 的状态信息。

Void onDestroy()

在 Active 被结束时调用,它是被结束时调用的最后一个方法,在这里一般做些释放资源,清理内存等工作。

总结:

一、Activity从创建到进入运行状态所触发的事件:

onCreate() —>onStart()—>onResume()

二、当Activity从运行状态到停止状态所触发的事件:

onPause()—>onStop()

三、当Activity从停止状态到运行状态所触发的事件:

onRestart()—>onStart()—>onResume()

四、当Activity从运行状态到暂停状态所i触发的事件:

onPause()

五、当Activity从暂停状态到运行状态所触发的事件:

onResume()

具体关系如图所示

解释如下:

正在运行的Activity 处在在栈的最顶端,它是运行状态的;当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。

譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。

当你调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该 Activity 实例完成了相应的工作,可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,同时原 Activity 被压入到栈的第二层,从 Active 状态转到 Paused 状态。例如:从 Activity1 中启动了 Activity2,则当前处于栈顶端的是 Activity2,第二层是 Activity1,当我们调用 Activity2.finish()方法时,Activity Manager 重新激活 Activity1 并入栈,Activity2 从 Active 状态转换 Stoped 状态,Activity1. onActivityResult(int requestCode, intresultCode, Intent data)方法被执行,Activity2 返回的数据通过 data参数返回给 Activity1。

如上就是我对Android生命周期学习的总结。

 

分享到:
评论

相关推荐

    安卓Android源码——(Activity生命周期).zip

    安卓Android源码——(Activity生命周期).zip

    安卓Android源码——(Activity生命周期).rar

    安卓Android源码——(Activity生命周期).rar

    Android四大组件——Activity——Activity的生命周期.doc

    Android四大组件——Activity——Activity的生命周期.doc

    动手学Android之七——Activity生命周期

    动手学Android之七——Activity生命周期例子程序,欢迎大家下载

    Android学习笔记(十五)——碎片的生命周期

    Android学习笔记(十五)——碎片的生命周期 此文章源码,文章地址:http://blog.csdn.net/zenail501129

    Android开发之旅——完整版

    • Android 开发之旅:组件生命周期(一) • Android 开发之旅:组件生命周期(二) • Android 开发之旅:组件生命周期(三) • Android 开发之旅:又见Hello World! • Android 开发之旅:深入分析布局文件...

    Android学习3——Activity生命周期

    NULL 博文链接:https://ylxy3058.iteye.com/blog/2228149

    android开发揭秘PDF

    3.2 Android的生命周期 3.3 Android程序U设计 3.4 小结 第4章 用户界面开发 4.1 用户界面开发详解 4.1.1 用户界面简介 4.1.2 事件处理 4.2 常用控件应用 4.2.1 文本框(Textiew) 4.2.2 列表(ListView) 4.2.3 提示(T0...

    Android开发与应用——张荣,原书配套课件

    3.5 Activity及其生命周期 3.5.1 什么是Activity 3.5.2 Activity生命周期 3.6 Intent简介 3.6.1 Intent属性与过滤器 3.6.2 Intent启动系统Activity 3.7 小结 练习 第4章 视图组件 4.1 视图组件的...

    Android四大组件——Activity(一)Activity之间通信及其生命周期变化

    Activity之间通信及其生命周期变化,及回传参数等基础知识点

    老罗android开发视频教程全集百度网盘下载

    Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源制作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及...

    android开发入门与实战(下)

    10.3 Service的生命周期 10.4 实例学习Service 10.4.1 精彩实例一——定时提醒 10.4.2 精彩实例二——音乐播放器 10.5 本章小结 第11章 循序渐进——开发Android应用的基本步骤 11.1 兵马未动粮草先行——应用规划...

    Android应用开发详解

    Android 基本程序单元Activity,讲述了Android中重要组件Activity的创建、启动和生命周期等内容 第6章 Android组件之间的信使Intent Android 组件之间的信使Intent,讲述了Intent对象及其属性、Intent的实现策略和...

    《Google Android开发入门与实战》.pdf

    10.3 service的生命周期 194 10.4 实例学习service 194 10.4.1 精彩实例一——定时提醒 194 10.4.2 精彩实例二——音乐播放器 198 10.5 本章小结 201 第11章 循序渐进——开发android应用的基本步骤...

    android开发入门与实战(上)

    10.3 Service的生命周期 10.4 实例学习Service 10.4.1 精彩实例一——定时提醒 10.4.2 精彩实例二——音乐播放器 10.5 本章小结 第11章 循序渐进——开发Android应用的基本步骤 11.1 兵马未动粮草先行——应用规划...

    Android实验二:Activity的生命周期及Intent

    1、设计界面,包括四个按钮,两个文本框。单击对应按钮可以启动对应activity。假定Activity A为启动Activity。 2、修改 Activity 的启动模式 LaunchMode,并通过 Log 信息来体会不同启动模式所对应的Activity 和 ...

    Android Service生命周期详解

    上篇Android开发之旅:组件生命周期(一)讲解了论活动的生命周期及他们可能的状态、通知状态改变的方法。本篇将介绍服务和广播接收者的生命周期: 服务生命周期 广播接收者生命周期 1、服务生命周期 一个服务可以用...

    android开发资料大全

    两分钟彻底让你明白Android Activity生命周期(图文)! Android 图形系统剖析 Android 立体效果图片 NDK动态库的调用 Android 姿态传感器 Android 很酷的图像旋转 Android 添加音频 在Android中实现多线程断点下载 ...

Global site tag (gtag.js) - Google Analytics