android点滴(12) -- 1. Android横竖屏切换时,Activity的生命周期的变化(面试题)

 

1.       Android横竖屏切换时,Activity的生命周期的变化。

 

Activity的生命周期

android点滴(12) -- 1. Android横竖屏切换时,Activity的生命周期的变化(面试题)/Files/cody1988/ActivityLifeCycle.rar

完整生命周期(the entire lifetime)

onCreate , onDestroy 在创建和销毁的时候调用。在onCreate中初始化全局资源,在onDestroy中销毁资源。

 

可见生命周期(the visible lifetime)

         onStart , onStop 这是Activity可见,但是未必可交互即未必在最前面。维护着用户可见的资源。

 

前景周期(the foreground lifetime)

         onResume , onPause 此时Activity在最前面,可与用户交互。一个Activity可在ResumePause之间频繁的切换例如设备休眠。因此这两个方法中只有相当轻量级的调用。

 

横竖屏切换时Activity的生命周期的变化与activityconfigChanges的配置有关。

 

1.       configChanges不配置

运行:

android点滴(12) -- 1. Android横竖屏切换时,Activity的生命周期的变化(面试题)

初始时TextView显示的内容为“Hello World, LifeCycle!”,点击Button

         android点滴(12) -- 1. Android横竖屏切换时,Activity的生命周期的变化(面试题)

竖屏切换为横屏:

android点滴(12) -- 1. Android横竖屏切换时,Activity的生命周期的变化(面试题)

此时TextView的内容重新变为“Hello World, LifeCycle!

android点滴(12) -- 1. Android横竖屏切换时,Activity的生命周期的变化(面试题)

横屏切换为竖屏:

android点滴(12) -- 1. Android横竖屏切换时,Activity的生命周期的变化(面试题)

2.       配置configChanges

 

<activity android:name=".LifeCycle"

android:configChanges="orientation"

         android:label="@string/app_name">

     ……

</activity>

 

运行,点击Button

竖屏切换为横屏:

没有发生变化

 

横屏切换为竖屏:

                        没有发生变化

 

结论:横竖屏切换时Activity的生命周期与configChanges的配置相关。1.如果不配置,则要先销毁Activity再创建,销毁的过程中会调用onSaveInstanceState,

2.如果配置configChangesOrientation则不销毁

 

 

 

 

 

 

 

 

你可能感兴趣的:(Activity)