Android Activity的生命周期

Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样,基本都是翻译Android API,过于笼统。

  Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的):

Activity其实是继承了ApplicationContext这个类,如下代码:

 1 view plaincopy to clipboardprint?
 2 public class Activity extends ApplicationContext {  
 3        protected void onCreate(Bundle savedInstanceState);  
 4        protected void onStart();     
 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
原文地址:https://www.cnblogs.com/zhen123/p/6085743.html