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键之后的生命周期:

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。