1.从一个页面跳转到另外一个页面测试结果(相同组件模式就不重复)
第一个页面启动(boot表示第一个页面的函数,second代表第二个页面的函数)
04-18 07:09:54.553: W/MyFirstApp(988): boot.onCreate
onCreate构架组件
04-18 07:09:54.832: W/MyFirstApp(988): boot.onStart
onStart进入可视状态
04-18 07:09:54.832: W/MyFirstApp(988): boot.onResume
onResume进入前台可交互
从第一个页面进入第二个页面
04-18 07:09:58.142: W/MyFirstApp(988): boot.onPause
onPause暂停
04-18 07:09:58.232: W/MyFirstApp(988): Second.onCreate
04-18 07:09:58.402: W/MyFirstApp(988): Second.onStart
04-18 07:09:58.412: W/MyFirstApp(988): boot.onResume
04-18 07:09:59.232: W/MyFirstApp(988): boot.onStop
onStop进入不可视状态
如果第二个页面是透明,还是阔以看到奥第一个页面那么STOP就不会被执行
从第二个页面返回第一个页面
04-18 07:10:06.382: W/MyFirstApp(988): Second.onPause
04-18 07:10:06.422: W/MyFirstApp(988): boot.onRestart
onRestart恢复运行
04-18 07:10:06.422: W/MyFirstApp(988): boot.onStart
04-18 07:10:06.422: W/MyFirstApp(988): boot.onResume
04-18 07:10:06.942: W/MyFirstApp(988): Second.onStop
04-18 07:10:06.942: W/MyFirstApp(988): Second.onDestroy
onDestroy销毁
2.在第一个页面翻转屏幕LOG如下(没有设置android:configChanges=“orientation|screenSize”)
04-18 07:47:21.192: W/MyFirstApp(988): boot.onPause
04-18 07:47:21.192: W/MyFirstApp(988): boot.onStop
04-18 07:47:21.192: W/MyFirstApp(988): boot.onDestroy
04-18 07:47:21.212: W/MyFirstApp(988): boot.onCreate
04-18 07:47:21.562: W/MyFirstApp(988): boot.onStart
04-18 07:47:21.572: W/MyFirstApp(988): boot.onResume
3.在第一个页面翻转屏幕LOG如下(设置android:configChanges=“orientation|screenSize” 原本是竖向 现在翻转成横向 CTRL+11翻转模拟器屏幕)
04-18 08:03:58.202: W/MyFirstApp(2190): boot.onConfigurationChanged
4.在第一个页面翻转屏幕LOG如下(设置android:configChanges=“orientation|screenSize” 横向翻转成竖向)
04-18 08:05:58.432: W/MyFirstApp(2190): boot.onConfigurationChanged
TIP:android:configChanges=“orientation” 在模拟器翻转时候重复上面没有设置的属性,加上屏幕大小之后才只显示控件配置改变函数,猜测是翻转改变屏幕的大小(原来240*400 翻转后变为400*240)
1、不设置Activity的android:configChanges时和设置Activity的android:configChanges="orientation"或android:configChanges=“orientation|keyboardHidden”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges="orientation|keyboardHidden|screenSize"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法。(执行这个方法,必须设置sdk version 大于等于13即Android3.2以后)
没有设置,起初是竖向,竖向转横向:
02-25 13:43:49.187: D/zjc(7800): onPause test=0
02-25 13:43:49.187: D/zjc(7800): onSaveInstanceState test=1
02-25 13:43:49.187: D/zjc(7800): onStop test=1
02-25 13:43:49.187: D/zjc(7800): onDestroy test=1
02-25 13:43:49.203: D/zjc(7800): onCreate null!=savedInstanceState test=1
02-25 13:43:49.312: D/zjc(7800): onStart test=0
02-25 13:43:49.312: D/zjc(7800): onRestoreInstanceState test=0
02-25 13:43:49.312: D/zjc(7800): onResume test=0
横向变竖向:
02-25 13:45:12.320: D/zjc(7800): onPause test=0
02-25 13:45:12.320: D/zjc(7800): onSaveInstanceState test=1
02-25 13:45:12.320: D/zjc(7800): onStop test=1
02-25 13:45:12.320: D/zjc(7800): onDestroy test=1
02-25 13:45:12.343: D/zjc(7800): onCreate null!=savedInstanceState test=1
02-25 13:45:12.460: D/zjc(7800): onStart test=0
02-25 13:45:12.460: D/zjc(7800): onRestoreInstanceState test=0
02-25 13:45:12.460: D/zjc(7800): onResume test=0
起初是横向,有横向变竖向:
02-25 13:46:03.515: D/zjc(7800): onPause test=0
02-25 13:46:03.515: D/zjc(7800): onSaveInstanceState test=1
02-25 13:46:03.523: D/zjc(7800): onStop test=1
02-25 13:46:03.523: D/zjc(7800): onDestroy test=1
02-25 13:46:03.539: D/zjc(7800): onCreate null!=savedInstanceState test=1
02-25 13:46:03.640: D/zjc(7800): onStart test=0
02-25 13:46:03.640: D/zjc(7800): onRestoreInstanceState test=0
02-25 13:46:03.648: D/zjc(7800): onResume test=0
竖向变横向:
02-25 13:46:21.742: D/zjc(7800): onPause test=0
02-25 13:46:21.742: D/zjc(7800): onSaveInstanceState test=1
02-25 13:46:21.750: D/zjc(7800): onStop test=1
02-25 13:46:21.750: D/zjc(7800): onDestroy test=1
02-25 13:46:21.773: D/zjc(7800): onCreate null!=savedInstanceState test=1
02-25 13:46:21.867: D/zjc(7800): onStart test=0
02-25 13:46:21.867: D/zjc(7800): onRestoreInstanceState test=0
02-25 13:46:21.875: D/zjc(7800): onResume test=0