¿Por qué establecemos la vista de contenido en onCreate () y no en onStart () o onResume ()?

He creado un pequeño programa para establecer la vista de contenido en onResume () método en lugar de onCreate () y su funcionamiento bien.

onResume() { setContentView(R.layout.activity_main); editText1 = (EditText) findViewById(R.id.ed1); editText2 = (EditText) findViewById(R.id.ed2); Button button = (Button) findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show(); } }); } } 

Como onCreate() de una Actividad se llama una sola vez, este es el punto donde debe ir la mayoría de la inicialización: llamando a setContentView(int) para inflar la IU de la actividad, usando findViewById para interactuar programáticamente con widgets en la interfaz de usuario, llamando a managedQuery(android.net.Uri , String[], String, String[], String) para recuperar los cursores de los datos que se muestran, etc.

Es ineficiente establecer el contenido en onResume() o onStart() (que se llaman varias veces) como el setContentView() es una operación pesada.

onResume usted puede llamar tiempos de serval. onCreate es sólo una vez. Intente registrar algo en ellos y saltar a otra actividad que volver.

No establecesContentView en onStart o onResume porque es ineficiente. Configurar el diseño es una tarea muy pesada. Tienes que analizar el XML, crear las vistas, las medidas, el dibujo, el etc. Es el tipo de tarea que deseas funcionar a lo más una vez.

Durante la vida de su clase de actividad onCreate se llama exactamente una vez. OnResume y onStart serán llamados varias veces sin que su actividad sea destruida.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.