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的生命周期图:
android Activity状态以及生命周期_第1张图片
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()里面来恢复数据。

 

 

 





你可能感兴趣的:(android,工作,xml,浏览器,dialog,音乐)