首页 > 代码库 > Android 面试之横竖屏切换的Activity生命周期

Android 面试之横竖屏切换的Activity生命周期

public class EngineerJspActivity extends Activity {
    private static String Tag = "EngineerJspActivity";
	@Override
	protected void onCreate(Bundle savedInstanceState) { 
		super.onCreate(savedInstanceState);
		Log.d(Tag, "onCreate()");
		setContentView(R.layout.activity_main);
	}
	@Override
	protected void onStart() {
		super.onStart();
		Log.d(Tag, "onStart()");
	}
    @Override
    protected void onResume() {
    	super.onResume();
    	Log.d(Tag, "onResume()");
    }
    @Override
    protected void onSaveInstanceState(Bundle outState) {
    	super.onSaveInstanceState(outState);
    	Log.d(Tag, "onSaveInstanceState()");
    }
    @Override
    protected void onPause() {
    	super.onPause();
    	Log.d(Tag, "onPause()");
    }
    @Override
    protected void onStop() {
    	super.onStop();
    	Log.d(Tag, "onStop()");
    }
 @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
    	super.onRestoreInstanceState(savedInstanceState);
    	Log.d(Tag, "onRestoreInstanceState()");
    }
    @Override
    protected void onDestroy() {
    	super.onDestroy();
    	Log.d(Tag, "onDestroy()");
    }

}
②执行Activity(没有切换屏幕的正常情况下启动Activity),得到例如以下结果:

技术分享

③切换成横屏时的Activity生命周期:

技术分享

④换回竖屏的Activity生命周期:

技术分享

⑤给清单文件加上android:configChanges="orientation"属性。又一次启动Activity,没有切换屏幕时(正常启动)的生命周期:

技术分享

⑥加上android:configChanges="orientation"属性。切换成横屏,Activity的生命周期:

技术分享

⑦加上android:configChanges="orientation"属性。换回竖屏,Activity的生命周期:

技术分享

⑧加上android:configChanges="orientation"keyboardHidden"属性。正常启动Activity的生命周期(未切屏幕):

技术分享

⑨加上android:configChanges="orientation"keyboardHidden"属性。正常启动Activity的生命周期(切成横屏):

技术分享

⑩加上android:configChanges="orientation"keyboardHidden"属性。正常启动Activity的生命周期(换回竖屏):

技术分享

执行Home键之后的生命周期:

技术分享

Android 面试之横竖屏切换的Activity生命周期