Android Activity的生命周期

本文详细解析了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值