`
v5qqbrowser
  • 浏览: 352932 次
文章分类
社区版块
存档分类
最新评论

android Activity状态以及生命周期

 
阅读更多

一. Activity的状态

在 android 中,Activity 拥有四种基本状态:

  1. Active/Runing:一个新的Activity入栈后,它在屏幕最前端,处于栈的最顶端,处于可见并且可交互的激活状态。
  2. Paused:当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
  3. Stoped:当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时的状态。
  4. Killed:Activity 被系统杀死回收或者没有被启动时的状态。

当一个 Activity 实例被创建、销毁或者启动另外一个 Activity 时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。下图说明了 Activity 在不同状态间转换的时机和条件:

二. Activity的生命周期
Activity的生命周期图:

Activtiy的生命周期包含:
  • protected void onCreate(Bundle savedInstanceState):一个 Activity 的实例被启动时调用的第一个方法。一般情况下,我们都覆盖该方法作为应用程序的一个入口点,在这里做一些初始化数据、设置用户界面等工作。大多数情况下,我们都要在这里从 xml 中加载设计好的用户界面。
  • protected void onStart():该方法在 onCreate() 方法之后被调用,或者在 Activity 从 Stop 状态转换为 Active 状态时被调用。
  • protected void onResume():在 Activity 从 Pause 状态转换到 Active 状态时被调用。一般在这块做数据恢复工作。
  • protected void onPause():在 Activity 从Active状态转换到Pause状态时被调用。一般我们在这里保存 Activity 的状态信息。
  • protected void onStop():在 Activity 从 Active 状态转换到 Stop 状态时被调用。
  • protected void onDestroy():在 Active 被结束时调用,它是被结束时调用的最后一个方法,在这里一般做些释放资源,清理内存等工作。
  • protected void onRestart():在 Activity 从 Stop 状态转换为 Active 状态时被调用,不经常使用。

1.我们一般打开一个程序的时候,就会先后执行该程序主Activity的onCreate()->onStart()->onResume()三个方法。
2.我们推出程序(或者点击BACK键),就好先后执行该Activity的onPause()->onStop()->onDestory()三个方法。

3.当我们打开应用程序时,比如浏览器,我正在浏览NBA新闻,看到一半时,我突然想听歌,这时候我们会选择按HOME键,然后去打开音乐应用程序,而当我们按HOME的时候,Activity先后执行了onPause()->onStop()这两个方法,这时候应用程序并没有销毁。

4.而当我们再次启动ActivityDemo应用程序时,则先后分别执行了onRestart()->onStart()->onResume()三个方法。

这里我们会引出一个问题,当我们按HOME键,然后再进入Activity应用时,我们的应用的状态应该是和按HOME键之前的状态是一样的。所以,我们一般在onPause()里面保存一些数据和状态。在onResume()里面来恢复数据。





分享到:
评论

相关推荐

    Activity生命周期演示

    日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...

    两分钟彻底让你明白Android Activity生命周期(图文)

    两分钟彻底让你明白Android Activity生命周期(图文)

    Android课程第一次实验报告_Andorid应用程序Activity生命周期.docx

     对于应用开发者来说,理解不同的应用组件(特别是Activity、Service、Intent Receiver)对应用进程的生命周期的影响,这是非常重要的。如果没有正确地使用这些组件,将会导致当应用正在处理重要的工作时,进程却被...

    Android中的Activity生命周期总结

    上图是从Android官网截下的Activity的生命周期流程图,结构非常清晰,它描述了Activity在其生命周期中所有可能发生的情况以及发生的先后顺序,下面就将结合此图详细介绍一下Activity的生命周期。 Activity四大基本...

    Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化

    Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化 例如: 切换到横屏 onSaveInstanceState onPause onStop onDestroy onCreate onStart onRestoreInstanceState onResume

    实验一Android环境构建与Activity生命周期.doc

    实验一Android环境构建与Activity生命周期 【目的】 安装智能手机开发相关软件平台,并在此基础上测试Activity的生命周期过程。 【要求】 1. 完成智能手机开发平台安装、以及相关配置; 2. 并实现Hello World; 3. ...

    深入Activity的生命周期

    本PDF主要是介绍Activity生命周期,目的是为了更的多的android朋友初学者或者不太深入理解的朋友更加地深入android开发程序中去,并全面介绍Activity生命周期中的细节,理解Activity的生命周期对应用程序开发来说是...

    Android中Activity的生命周期探讨

    上图是Android Activity的生命周期图,其中Resumed、Paused、Stopped状态是静态的,这三个状态下的Activity存在时间较长。 (1)Resumed:在此状态时,用户可以与Activity进行交互,Activity在最前端 (2)Paused:...

    android-Kotlin源码利用甜点点餐观测Activity函数的生命周期

    借用借助 Android 日志来观测activity 生命周期中的每种状态回调方法的生命周期,具体详情 看 https://blog.csdn.net/jaz/article/details/119580819

    Android Activity的生命周期详细介绍

    Android Activity的生命周期详细介绍 生命周期描述的是一个类从创建(new出来)到死亡(垃圾回收)的过程中会执行的方法。在这个过程中,会针对不同的生命阶段调用不同的的方法。  Activity是Android中四大组件之...

    android生命周期

    Acitvity 生命周期代码示例,详细描述activity三种状态变化

    Android生命周期

    Android生命周期 Activity整个生命周期,logcat 过滤信息查看生命周期状态变化

    android Activity与Fragment

    Android下的Activity和Fragment的生命周期,详细的说明了Activity的状态保存,并说明Activity在屏幕旋转等特定的情况下的生命周期的变化

    Android学习笔记-Activity篇

    五、管理Activity的生命周期 2 5.1 生命周期简介 2 5.2 保存activity状态 3 5.3 处理配置文件的改变 3 5.4 Activity之间的合作 3 Tasks and Back Stack 4 一、管理Task 4 1.1 定义launch模式 4 1.2 设置affinities 5...

    fragment生命周期

    Fragment生命周期,Frament生命周期和Activity生命周期的关系。Fragment的生命周期方法何时回调。

    Android的Fragment的生命周期各状态和回调函数使用

    主要介绍了Android的Fragments的生命周期各状态和回调函数使用,Fragments的生命周期与Activity息息相关,需要的朋友可以参考下

    AndroidX Fragment探究-生命周期

    Fragment的生命周期依托FragmentActivity管理调度,在FragmentActivity的各个生命周期方法回调中,会将对应生命状态派发给依附于FragmentActivity的所有Fragment。 图1.Fragment 生命周期 源码探究 文中源码基于’...

    四、Android程序生命周期-Android开发与实践

    了解Android系统的进程优先级的变化方式 了解Android系统的四大基本组件 ... 了解Activity的生命周期中各状态的变化关系 掌握Activity事件回调函数的作用和调用顺序 掌握Android应用程序的调试方法和工具

Global site tag (gtag.js) - Google Analytics