简单的生命周期

471 查看

多个activity之间的切换,生命周期的调用

java08-25 05:02:47.783: INFO/System.out(339): MainActivity------->onPause()  
08-25 05:02:47.843: INFO/System.out(339): Another------->onCreate()  
08-25 05:02:47.853: INFO/System.out(339): Another------->onStart()  
08-25 05:02:47.853: INFO/System.out(339): Another------->onResume()  
08-25 05:02:48.253: INFO/System.out(339): MainActivity------->onStop()   

通过intent跳转

oncreate()在第一次创建被调用,这里是你做所有初始化设置的地方──创建视图、绑定数据至列表等
0nStart():Activity显示在前台,但还不可与用户交互
onRestart():在activity停止后,在再次启动之前被调用。
onResume():取得控制权,可以对此Activity进行操作此时activity位于堆栈顶部,并接受用户输入。
onPause():暂停,可见,但不可操作,此方法主要用来将未保存的变化进行持久化,停止类似动画这样耗费CPU的动作等
onStop():当activity不再为用户可见时调用此方法
onDestroy():在activity销毁时调用

按Back键返回:

java08-25 05:03:48.133: INFO/System.out(339): Another------->onPause()  
08-25 05:03:48.174: INFO/System.out(339): MainActivity------->onRestart()  
08-25 05:03:48.174: INFO/System.out(339): MainActivity------->onStart()  
08-25 05:03:48.174: INFO/System.out(339): MainActivity------->onResume()  
08-25 05:03:48.483: INFO/System.out(339): Another------->onStop()  
08-25 05:03:48.483: INFO/System.out(339): Another------->onDestroy()  

如果有相关的操作,返回activity的时候需要更新数据时,可以写在onRestart(),onStart(),onResume()中,这样数据就得到更新了,但是同时也有可能造成了很多不必要的数据更新,网络请求。

第二个Activity使用了finish()方法,返回:

java08-25 05:10:48.053: INFO/System.out(366): Another------->onPause()  
08-25 05:10:48.103: INFO/System.out(366): MainActivity------->onRestart()  
08-25 05:10:48.103: INFO/System.out(366): MainActivity------->onStart()  
08-25 05:10:48.103: INFO/System.out(366): MainActivity------->onResume()  
08-25 05:10:48.423: INFO/System.out(366): Another------->onStop()  
08-25 05:10:48.453: INFO/System.out(366): Another------->onDestroy()  

但是在当前Activity调出Dialog对话框,Activity不会执行生命周期中的任何方法。

横竖屏切换的时候

javaonSaveInstanceState-->
onPause-->
onStop-->
onDestroy-->
onCreate-->
onStart-->
onRestoreInstanceState-->
onResume-->

这里看到activity时重新去加载了一次。