Chinaunix首页 | 论坛 | 博客
  • 博客访问: 143129
  • 博文数量: 29
  • 博客积分: 151
  • 博客等级: 入伍新兵
  • 技术积分: 225
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-20 18:54
文章分类

全部博文(29)

文章存档

2012年(16)

2011年(13)

分类: LINUX

2012-08-14 16:35:09

由于工作的需要最近在学习android应用程序编程,下面这幅图是Activity的生命周期


在Activity从建立到销毁的过程中需要在不同的阶段调用7个生命周期方法。这七个生命周期方法的定义如下:


点击(此处)折叠或打开

  1. public class Activity extends ApplicationContext {
  2.      protected void onCreate(Bundle savedInstanceState);

  3.      protected void onStart()
  4.      
  5.      protected void onRestart();

  6.      protected void onResume();

  7.      protected void onPause();

  8.      protected void onStop();

  9.      protected void onDestroy();
  10.  }
上面七个生命周期方法分别在4个阶段调用按一定的顺序进行调用,这四个阶段如下:

1.在开始Activity:在这个阶段执行三个生命周期方法---onCreate onStart  onResume

2.Activity失去焦点:如果在Avitity获得焦点的情况下进入其他的Activity或应用程序,当前的Activity
会失去焦点。在这一阶段会依次执行onPause和onStop方法。

3.Activity重新获得焦点:如果Activity重新获得焦点,会依次执行3个生命周期方法--onRestart onStart和onResume方法。

4。关闭Activity:当Activity被关闭时系统会依次执行三个生命周期方法--onPause onStop 和onDestroy.

如果在这四个阶段执行生命周期方法的过程中不发生状态的改变,系统会按上面的描述依次执行这是个阶段的生命周期方法,但如果在执行过程中改变了状态,系统会按更复杂的方式调用生命周期方法。

在执行的过程中可以改变系统的执行轨迹的生命周期方法是:onPause 和onStop。如果在执行pnPuse方法的过程中Activity重新获得了焦点,然后又失去了焦点,系统会不会在执行onStop.方法,而是按如下顺序执行相应的生命周期方法:
    onPuse-->onResume-->onPause

如果在执行onStop 方法的过程中Activity重新获得了焦点,然后又失去了焦点,系统将不会执行onDestroy方法,而是按如下顺序执行相应的的生命周期方法:
onStop-->onRestart-->onStart-->onResume-->onPause-->onStop




阅读(8779) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~