¿Debe la llamada al método de superclase ser la primera instrucción?

Los resultados de un reconocimiento de voz se pueden leer en el onActivityResult(int requestCode, int resultCode, Intent data) , como se muestra en este ejemplo . Este método reemplaza al mismo método en la clase Activity : ¿por qué la llamada al método de superclase no es la primera?

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) { // Fill the list view with the strings the recognizer thought it could have heard // ... } super.onActivityResult(requestCode, resultCode, data); } 

Métodos que reemplazar que son parte de la creación de componentes ( onCreate() , onStart() , onResume() , etc), debe encadenar a la superclase como la primera declaración, para asegurarse de que Android tiene su oportunidad de hacer su trabajo antes de que Intentar hacer algo que se basa en que el trabajo que se ha hecho.

Métodos que anulas que son parte de la destrucción de componentes ( onPause() , onStop() , onDestroy() , etc.), deberías hacer tu trabajo primero y encadenar a la superclase como la última cosa. De esta forma, en caso de que Android limpie algo de lo que depende su trabajo, habrá hecho su trabajo primero.

Métodos que devuelven algo distinto de void ( onCreateOptionsMenu() , etc.), a veces se encadena a la superclase en la instrucción return, suponiendo que no está haciendo específicamente algo que necesite forzar un determinado valor de retorno.

Todo lo demás – como onActivityResult() – depende de usted, en general. Tiendo a encadenar a la superclase como la primera cosa, pero a menos que usted esté funcionando en problemas, encadenamiento más adelante debe ser fino.

Porque generalmente desea realizar los eventos exclusivos de su actividad anulada antes de pasar el control de copia de seguridad de la jerarquía de clases. Tenga en cuenta que no siempre es el caso. A veces, debe poner las llamadas en primer lugar, como en las devoluciones de llamada que suceden cuando se inicializa la aplicación, y es posible que desee ponerlos en último lugar para los eventos que suceden cuando se destruye la aplicación para que pueda limpiar primero.

En general, aunque no importa y si lo hace se mencionará en el SDK – he corrido en lo mencionado algunos lugares en el SKD (creo en la documentación relativa a los diálogos), pero no puedo recordar exactamente lo que Página / sección está encendido.

Hay una discusión más detallada sobre el tema aquí: http://groups.google.com/group/android-developers/browse_thread/thread/9ddb2b06c21c8457

  • Una Actividad y todos los otros Fragmentos
  • Liberar recursos en onPause en lugar de onDestroy
  • ¿Cómo puedo comprobar en Robotium que la aplicación ha terminado?
  • FacebookActivity no llamó a finish () en Api 23+
  • Realizar una pausa de actividad que no se reanuda después de volver a crear el método
  • La aplicación se reinicia en lugar de continuar
  • ¿Cómo terminar la actividad de los padres de la actividad infantil sin terminar / detener la actividad infantil?
  • ¿Cuándo se llama a onActivityResult del fragmento con respecto al ciclo de vida de los fragmentos?
  • ¿Android almacena variables estáticas?
  • Distinguir entre presionar el botón "inicio" y abrir otra Actividad
  • Omitir correctamente la actividad de inicio de sesión si ya ha iniciado sesión
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.