首页 > 移动平台 > 详细

Android开发基础—Activity的生命周期

时间:2015-10-29 23:03:33      阅读:347      评论:0      收藏:0      [点我收藏+]

  下面官方Activity的生命周期的一张图,很详细,自己看。

技术分享

1.现在就介绍下这生命周期中的几个方法。

 onCreate()

 这个方法在Activity启动的时候回调。   

 onStart()

 这个方法在Activity可见的时候回调。

 onResume()

 这个方法在Activity获得焦点的时候回调。

 onPause()

 这个方法在Activity失去焦点的时候回调。

 onStop()

 这个方法在Activity不可见的时候回调。

 onRestart()

 这个方法在Activity由停止状态到运行状态时会回调此方法。

 onDestroy()

 这个方法在Activity销毁时会回调。

  

2.下面介绍几个过程。

  (1)界面从"不存在" -->"可见可操作"

   onCreate()---onStart()---onResume()

  (2)界面从"可见可操作" --->"不存在" (Back键)

   onPause()---onStop()---onDestroy()

  (3)界面从"可见可操作"--->"不可见,但存在" (Home键)

   onPause()---onStop()  

  (4)界面从"不可见,但存在"--->"可见可操作" (Home键之后又打开那个Activity)

   onRestart()---onStart()---onResume()

  (5)界面从"可见可操作" --->"可见不可操作" (Activity被遮盖一部分,或者完全遮盖但是上面Activity是透明的)

      onPause()

  (6)界面从"可见不可操作"--->"可见可操作"

   onResume()

   

3.Activity的四种状态

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

  (1)Active/Running状态

    一个新Activity启动入栈后,它在屏幕的最前端,栈的最顶端,此时它处于可见并可和用户交互的激活状态。 

 (2)Paused状态

    当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态,此时它仍然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见是它已经失去了焦点,故不可与用户交互。

 (3)Stopped状态

    当Activity被另一个Activity覆盖,失去焦点并不可见时处于Stopped状态。

 (4)Killed状态 

    当Activity被系统杀死回收或者没有被启动时处于Killed状态。

当一个 Activity 实例被创建、销毁或者启动另外一个 Activity 时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。

 

 4.Activity栈

   Android是通过一种Activity栈的方式来管理Activity的,一个Activity的实例的状态决定它在栈中的位置。处于前台的Activity总是在栈的顶端,当前台Activity因为异常或者其他原因被销毁时,处于第二层的Activity将被激活,上浮到栈顶。当新的Activity启动入栈时,原Activity会被压入到栈的第二层。一个Activity在栈中的位置变化反映它在不同状态间的转换。Activity 的状态与它在栈中的位置关系如下图所示。

   技术分享

  如上所示,除了最顶层即处在 Active 状态的 Activity 外,其它的 Activity 都有可能在系统内存不足时被回收,一个 Activity 的实例越是处在栈的底层,它被系统回收的可能性越大。系统负责管理栈中 Activity 的实例,它根据 Activity 所处的状态来改变其在栈中的位置。

 

 

 

 

Android开发基础—Activity的生命周期

原文:http://www.cnblogs.com/yangang2013/p/4921943.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!